我使用以下PHP代码来附加xyz.txt
文件的电子邮件。除Microsoft Outlook之外的所有电子邮件客户端都能正确查看文件内容,但对于Outlook客户端,电子邮件正文文本将打印在附件中,而不是实际文件内容,即&#34; 您好,2015年10月1日的测试文件< / strong>&#34;。
我尝试了不同的boundary=\"PHP-alt-$uid\"
,但没有运气。
任何帮助都将受到高度赞赏。
文件xyz.txt包含=&gt;
test10637 | 202.00 | TEST | S | 10637
test10637 | 202.00 | TEST | S | 10637
$myfile = 'xyz.txt';
$file_size = filesize($myfile);
$handle = fopen($myfile, "r");
$content = fread($handle, $file_size);
$to = "mahesh@gmail.com";
fclose($handle);
$content = chunk_split(base64_encode($content));
$message = "Hi, \nTest file for " . date("jS \of F Y",strtotime('yesterday')); // Hi, Test file for 1st of October 2015
$uid = md5(uniqid(time()));
$header = "From: TestMail <raj@gmail.com>\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"" . $uid . "\"\r\n";
$header .= "This is a multi-part message in MIME format.\r\n";
$header .= "--" . $uid . "\r\n";
$header .= "Content-type:text/plain; charset=iso-8859-1\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n";
$header .= $message . "\r\n";
$header .= "--" . $uid . "\r\n";
$header .= "Content-Type: application/octet-stream; name=\"Testfile.txt\"\r\n";
$header .= "Content-Transfer-Encoding: base64\r\n";
$header .= "Content-Disposition: attachment; filename=".$myfile."\r\n";
$header .= $content . "\r\n";
$send = mail($to, 'Test Subject', $message, $header);
答案 0 :(得分:0)
将MIME消息设置为multipart / mixed并添加两个部分:一个text / plain用于消息正文(可以为空)和实际附件。