PHP电子邮件正在Gmail中显示,但不在Office 365中显示

时间:2015-03-29 17:30:24

标签: php email outlook gmail

我在本地计算机上设置了SMTP服务器。

在我的PHP脚本中,我将.txt文件保存到SMTP服务器正在侦听的目录中。当脚本保存到文件时,SMTP服务器会将其发送出去。

我的脚本如下所示:

$content  = "MIME-Version: 1.0" . PHP_EOL;
$content .= "Content-Type: text/html; charset=ISO-8859-1" . PHP_EOL;
$content .= 'From: user@domain.com' ."\r\n";
$content .= 'To: user@domain.com' . "\r\n";
$content .= "CC: susan@example.com\r\n";
$content .= 'Subject: Email test' . "\r\n";

$content .= 'Service Required - '. $_POST['service'] . "\r\n";
$content .= 'Contact - ' . $_POST['contact'] . "\r\n";
$content .= 'About - ' . $_POST['about'] . "\r\n";
$content .= 'Files - File size was to big for upload';

$fp = fopen('C:/inetpub/mailroot/pickup/email.txt',"wb");
fwrite($fp,$content);
fclose($fp);

发送到Gmail时会显示正文。

但是当发送到outlook时,身体是空的。

1 个答案:

答案 0 :(得分:0)

尝试更换:

$content .= "Content-Type: text/html; charset=ISO-8859-1" . PHP_EOL;

使用:

$content .= "Content-Type: text/plain; charset=ISO-8859-1" . PHP_EOL;

不是100%肯定,但Outlook可能没有显示任何内容,因为你告诉它期望HTML,但它没有收到任何。如果这是(唯一)问题,那么你很幸运,谷歌试图再次猜测你!

此外:

$content .= 'Subject: Email test' . "\r\n";

使用:

//double new line between headers and content
$content .= 'Subject: Email test' . "\r\n\r\n"; 

SMTP预计标题和内容之间会有一个双重新行。再一次,我认为谷歌已经做好了猜测那里发生了什么!