>  기사  >  백엔드 개발  >  PHP를 사용하여 이메일로 여러 첨부 파일을 보내는 방법은 무엇입니까?

PHP를 사용하여 이메일로 여러 첨부 파일을 보내는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-02 18:21:02359검색

How to Send Multiple File Attachments in Emails Using PHP?

PHP에서 이메일에 여러 파일을 첨부하는 방법

PHP에서는 이메일에 여러 파일을 첨부하여 동시에 보낼 수 있습니다. 이는 크거나 중요한 문서를 공유하는 데 유용합니다.

멀티파트 MIME 형식

이메일에 여러 파일을 첨부하려면 멀티파트 MIME 형식을 사용해야 합니다. MIME(Multi Purpose Internet Mail Extensions)을 사용하면 단일 이메일 메시지로 다양한 유형의 데이터를 보낼 수 있습니다.

다중 파일 첨부를 위한 PHP 코드

다음은 PHP 코드의 예입니다. 이메일에 여러 파일을 첨부하는 방법을 보여줍니다.

<code class="php">if ($_POST) {
    // Get the file names
    $files = $_FILES['csv_file']['name'];

    // Email fields
    $to = "[email protected]";
    $from = "[email protected]"; 
    $subject = "My subject"; 
    $message = "My message";
    $headers = "From: $from";

    // Boundary
    $semi_rand = md5(time()); 
    $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 

    // Headers for attachment 
    $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; 

    // Multipart boundary 
    $message = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n"; 
    $message .= "--{$mime_boundary}\n";

    // Preparing attachments
    foreach ($files as $file) {
        $file_data = file_get_contents($file);
        $file_data = chunk_split(base64_encode($file_data));
        $message .= "Content-Type: {\"application/octet-stream\"};\n" . " name=\"$file\"\n" . 
        "Content-Disposition: attachment;\n" . " filename=\"$file\"\n" . 
        "Content-Transfer-Encoding: base64\n\n" . $file_data . "\n\n";
        $message .= "--{$mime_boundary}\n";
    }

    // Send the email
    $ok = @mail($to, $subject, $message, $headers);
    if ($ok) { 
        echo "<p>mail sent to $to!</p>"; 
    } else { 
        echo "<p>mail could not be sent!</p>"; 
    }
}
?></code>

파일 업로드용 HTML 양식

이 코드는 다음을 허용하는 HTML 양식과 함께 사용할 수 있습니다. 사용자가 여러 파일을 선택하려면:

<code class="html"><form action="#" method="POST" enctype="multipart/form-data">
    <input type="file" name="csv_file[]" /><br/>
    <input type="file" name="csv_file[]" /><br/>
    <input type="file" name="csv_file[]" /><br/>
    <input type="submit" name="upload" value="Upload" /><br/>
</form></code>

파일 업로드를 활성화하려면 enctype="multipart/form-data" 속성을 양식에 추가해야 합니다.

이러한 방법을 구현하면 다음이 가능합니다. 이메일에 여러 파일을 쉽게 첨부하고 PHP 스크립트에서 보낼 수 있습니다.

위 내용은 PHP를 사용하여 이메일로 여러 첨부 파일을 보내는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.