PHP 邮件发送损坏的标头
P粉979586159
P粉979586159 2023-09-07 10:43:50
[PHP讨论组]

我正在努力从 PHP 脚本发送电子邮件。当 mail() 函数被触发时,收件人的邮箱由特定服务 (seznam.cz) 托管,并且邮件被下载到邮件客户端 (Mozilla Thunderbird) 并且 ESET 防病毒软件会对其进行检查,消息似乎已损坏。

我认为,该问题是由防病毒软件在邮件消息中插入特殊标头并在其后留下空行引起的:

...
Subject: =?UTF-8?B?Tm92w70gxI1sZW4gd2VidSBBU1AgxIxSIQ==?=
X-EsetId: 37303A298C7FEE69657363

X-PHP-Originating-Script: 80:script.php
MIME-Version: 1.0
Content-type:text/html;charset=UTF-8
...

我的电子邮件客户端认为该消息是纯文本,并且以行 X-PHP-Originating-Script 开头。消息的其余部分包括所有 HTML 标记。

这是我用来发送电子邮件的脚本:

$subject = mb_encode_mimeheader('Subject text');
$emailBody = '

    ...
';
$emailAltBody = "...";

$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= 'From: ' . "\r\n";

$result = mail("email.address@example.com", $subject, $emailBody, $headers);

但是,当使用 Laravel 框架时,电子邮件可以正确发送和显示。我比较了差异并意识到 X-PHP-Originating-Script 标头不是由 Laravel 发送的。

这可能是原因吗?我该如何解决它?

P粉979586159
P粉979586159

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号