在PHP中,如何发送带附件的HTML电子邮件?

0 html php email mime content-type

我有一个表单发送给自己,并允许人们附加文件.但我似乎无法在邮件中允许HTML.我想我需要两种不同的内容类型:

        $to     = "my@email.com"; // Webmaster
        $subj   = "Great Subject";
        $message = strip_tags($_POST['message']);
        $attachment = chunk_split(base64_encode(file_get_contents($_FILES['attachment']['tmp_name'])));
        $filename = $_FILES['attachment']['name'];
        $boundary =md5(date('r', time())); 
        $headers = "From: $fname $lname <$email>\r\nReply-To: $fname $lname <$email>";
        $headers .= "\r\nMIME-Version: 1.0\r\nContent-Type: multipart/mixed; boundary=\"_1_$boundary\"";
        $message .= "Here is your <strong>File</strong>.".\r\n" ;
        $message .= "This is a multi-part message in MIME format.

--_1_$boundary
Content-Type: multipart/alternative; boundary=\"_2_$boundary\"

--_2_$boundary
Content-Type: text/plain; charset=\"iso-8859-1\"
Content-Transfer-Encoding: 7bit

$message

--_2_$boundary--
--_1_$boundary
Content-Type: application/octet-stream; name=\"$filename\" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment 

$attachment
--_1_$boundary--";

        mail($to, $subj, $message, $headers);
Run Code Online (Sandbox Code Playgroud)

Mar*_*ean 6

使用像PHPMailer这样的类,因为它会使它更简单.

  • @Simpsons:如果这个类似乎对这么小的任务有很多工作,那么你的代码似乎太难以被修复这么短的时间了.我会分享我的美容课程,但是你甚至懒得阅读和理解你的代码,试着很好地格式化它,这样就不会伤害我们的眼睛. (2认同)