带附件的PHP邮件 - 额外文件:第1.4部分

Dan*_*Dan 4 php email attachment

我正在使用以下代码发送带附件的电子邮件:

    $mime_boundary = "<<<--==+X[".md5(time())."]";

    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: multipart/mixed;\r\n";
    $headers .= " boundary=\"".$mime_boundary."\"";

    $message .= "This is a multi-part message in MIME format.\r\n\r\n";
    $message .= "--".$mime_boundary."\r\n";

    $message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n";
    $message .= "Content-Transfer-Encoding: 7bit\r\n";
    $message .= "\r\n";
    $message .= "$message_body\r\n";
    $message .= "--".$mime_boundary."\r\n";

    foreach($attachments as $filename => $data)
    {
        $message .= "Content-Type: application/octet-stream;\r\n";
        $message .= " name=\"$filename\"\r\n";
        $message .= "Content-Transfer-Encoding: quoted-printable\r\n";
        $message .= "Content-Disposition: attachment;\r\n";
        $message .= " filename=\"$filename\"\r\n";
        $message .= "\r\n";
        $message .= chunk_split(base64_encode($data));
        $message .= "\r\n";
        $message .= "--".$mime_boundary."\r\n";
    }

    mail($email_address, $email_subject, $message, $headers);
Run Code Online (Sandbox Code Playgroud)

哪个工作正常,除了还附加了一个额外的文件(称为"第1.4部分").

有没有办法不添加这个?

干杯,丹.

Vol*_*erK 5

IIRC必须是最后一部分分隔符--something unique--,即在您的情况下

$message .= "--".$mime_boundary."--\r\n";
Run Code Online (Sandbox Code Playgroud)

但是mime邮件或多或少是一个已经解决的问题(例如,对于应用程序开发人员来说,当正确完成时很无聊,并且在做错时会令人烦恼;-)).帮自己一个忙,并使用像Swiftmailer或任何其他下降邮件库/类的东西.