PHP Mail- Microsoft Outlook未正确显示附加内容

时间:2015-10-07 14:51:16

标签: php email outlook

我使用以下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);

1 个答案:

答案 0 :(得分:0)

将MIME消息设置为multipart / mixed并添加两个部分:一个text / plain用于消息正文(可以为空)和实际附件。