Outlook中的HTML电子邮件使用PHP mail()函数

时间:2014-11-30 23:18:14

标签: php html email outlook html-email

我一直在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中。

还有什么建议吗?

3 个答案:

答案 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";