我在本地计算机上设置了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时,身体是空的。
答案 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预计标题和内容之间会有一个双重新行。再一次,我认为谷歌已经做好了猜测那里发生了什么!