【发布时间】:2015-11-08 21:53:23
【问题描述】:
当我尝试从 php 脚本发送 html 邮件时,谁能告诉我为什么。我的 Outlook 接收它的方式与我在数据库中看到的方式相同?
目前我的工具发送一封电子邮件,其中$body var 为<p>Dear client,</p> <p>&nbsp;</p> <p>Please find your account statement attached.</p> <p>&nbsp;</p> <p>Kind Regards</p>
用代码:
$email = new PHPMailer();
$email->From = $from_email_address;
$email->FromName = $from_name;
$email->Subject = $subject;
$email->IsHTML(true);
$email->Body = $body;
$email->AddAddress($client_email);
$email->AddAttachment(ROOTDIR.'/reports/statement.pdf', "Statement.pdf");
echo $email->Send();
但是当 Outlook 收到电子邮件时,它的格式不像 html 代码要求的那样。 Outlook 仅显示原始代码中的<p>标签。
附注:
我注意到如果我添加这一行:$body='<p>Dear client,</p><p>Please find this email well</p>'; 电子邮件是在 html 中生成并正确显示。但是当它从数据库<p>Dear client,</p> <p>&nbsp;</p> <p>Please find your account statement attached for your company.</p> <p>&nbsp;</p> <p>Kind Regards</p> 加载这个值时,它会将代码作为文本发送。不将其转换为 html。
这是什么原因造成的?
【问题讨论】:
-
我希望在您的数据库层中应用额外的编码级别。在浏览器中查看 $body 的值可能隐藏了额外的编码——从命令行查看它。
标签: php html email outlook phpmailer