PHP Gmail 中显示但 Office 365 中不显示的电子邮件正文
PHP Body of email showing in Gmail but not in Office 365
我在本地机器上设置了 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 时正文是空的。
尝试替换:
$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,但它没有收到任何内容。如果这是(唯一的)问题,那么您很幸运,Google 尝试为您进行第二次猜测!
还有:
$content .= 'Subject: Email test' . "\r\n";
有:
//double new line between headers and content
$content .= 'Subject: Email test' . "\r\n\r\n";
SMTP 期望 headers 和内容之间有一个双换行符。同样,我认为 Google 已经很好地猜测了那里发生了什么!
我在本地机器上设置了 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 时正文是空的。
尝试替换:
$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,但它没有收到任何内容。如果这是(唯一的)问题,那么您很幸运,Google 尝试为您进行第二次猜测!
还有:
$content .= 'Subject: Email test' . "\r\n";
有:
//double new line between headers and content
$content .= 'Subject: Email test' . "\r\n\r\n";
SMTP 期望 headers 和内容之间有一个双换行符。同样,我认为 Google 已经很好地猜测了那里发生了什么!