PHP发送订阅邮件时HTML内容被识别为纯文本如何解决?
解决方案
问题的核心原因是你配置的邮件内容类型为纯文本格式,导致客户端不会解析HTML标签,直接展示源码。
修改说明
- 把headers中
Content-type的取值从text/plain改为text/html,即可让邮件客户端正常解析渲染HTML内容 - 建议同步把字符集从
iso-8859-1改为utf-8,避免中文或特殊字符显示乱码 - 原代码中定义的
$message变量实际未被调用,且存在语法错误(from缺少$标识符、字符串未加引号包裹),可直接删除避免后续出错
修正后完整代码
$msg = file_get_contents("activate-mailer.html"); $from = $_POST['sunscribeemail']; // 发件人邮箱地址 $subject = "新闻通讯邮件订阅"; $headers = array(); $headers[] = "MIME-Version: 1.0"; $headers[] = "Content-type: text/html; charset=utf-8"; $headers[] = "From: " . $from; $headers[] = "Reply-To: " . $from; $headers[] = "X-Mailer: PHP/".phpversion(); mail($to, $subject, $msg, implode("\r\n", $headers));
内容的提问来源于stack exchange,提问作者Samrat Rahul Tiwari
相关产品推荐
相关产品推荐

