我一直在Outlook 2013中获取源代码。我已经阅读了很多stackoverflow问题,尝试了所有推荐的解决方案,没有帮助过。
这是我的php
$test1 = "test string";
// Retrieve the email template required
$message = file_get_contents('email-templates/template1.html');
// Replace the % with the actual information
$message = str_replace('%test1%', $test1, $message);
//echo $message;
$to = 'test@gmail.com';
$email_subject = "test";
$email_body = $message;
$headers = "From: $to\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
mail($to,$email_subject,$email_body,$headers);
仅使用\n
代替\r\n
,并负责处理订单(此处已提交),但仍在使用gmail,手机,机器人不在Outlook中。
还有什么建议吗?
答案 0 :(得分:1)
我建议尝试重新发明(或修复)你使用的轮子PHPMailer。我已经使用它多年来发送在Outlook中正确呈现的HTML电子邮件。
答案 1 :(得分:1)
您的代码看起来很像联机帮助页http://php.net/manual/en/function.mail.php
中的示例尝试使用\ r \ n(CR-LF)结束你的行,而不仅仅是新行,谁知道
您可以备份步骤,从php.net复制并粘贴示例,看看问题是否真的在Outlook端。你也可以从你的收件箱中提取html电子邮件,看看他们做了哪些不同的事情(尝试复制并粘贴从php中发送好的html电子邮件的副本)
至于重新发明轮子,如果mail()早于PHPMailer,可以说后者就是重新发明......
答案 2 :(得分:0)
解决方案是
$headers .= "MIME-Version: 1.0\n" ;
$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";