【发布时间】:2021-01-09 23:20:16
【问题描述】:
从托管在 Cpanel 帐户上的 PHP mail() 函数发送的电子邮件经常以垃圾邮件告终(@outlook.com 一直如此,@gmail.com 有时也如此)
我确定这不是由于邮件的内容,而是由于标题中的某些内容。我最好的猜测是,要么是因为有一个标头字段指示电子邮件是由 PHP 脚本发送的,要么是因为无论您是否将 From: Reply-To: 和 Return-Path: 设置为相同的电子邮件地址, SMTP 服务器始终显示电子邮件是从 {cpanel account username}@servername.serverdomain.com 发送的,这与 From/Reply-To 地址不匹配,并且它似乎覆盖了我用于 {cpanel 的任何返回路径地址帐号用户名}@servername.serverdomain.com
如您所知,Web 应用程序可以代表用户发送电子邮件,但该用户的电子邮件地址与应用程序运行所在的域不同。所以服务器可能是 serverdomain.com 而用户的电子邮件可能是 something@someotherdomain.com
检查测试脚本的标头或发送的电子邮件,SMTP 服务器始终显示电子邮件是从 cpanel-account-username@server1.serverdomain.com 发送到 Gmail 后的部分标头显示:
Return-Path: <cpanel-account-username@server1.serverdomain.com>
Received: from server1.serverdomain.com (server1.serverdomain.com. [XXX.XXX.XXX.XXX])
by mx.google.com with ESMTPS id w7si15164878pgi.491.2020.09.22.16.51.14
for <testto@gmail.com>
(version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
Tue, 22 Sep 2020 16:51:14 -0700 (PDT)
Received-SPF: pass (google.com: domain of cpanel-account-username@server1.serverdomain.com designates XXX.XXX.XXX.XXX as permitted sender) client-ip=XXX.XXX.XXX.XXX;
Authentication-Results: mx.google.com;
spf=pass (google.com: domain of cpanel-account-username@server1.serverdomain.com designates XXX.XXX.XXX.XXX as permitted sender) smtp.mailfrom=cpanel-account-username@server1.serverdomain.com
Received: from cpanel-account-username by server1.serverdomain.com with local (Exim 4.93) (envelope-from <cpanel-account-username@server1.serverdomain.com>) id 1kKs41-00014X-4u for test@gmail.com; Tue, 22 Sep 2020 16:51:13 -0700
To: testto@gmail.com
Subject: Something
X-PHP-Script: suitecpanelhostdomain.com/cms/index.php for XXX.XXX.XXX.XXX
X-PHP-Originating-Script: 1006:test_script.php
From: From Name <something@someotherdomain.com>
Reply-To: something@someotherdomain.com
MIME-Version: 1.0
Content-Type: text/html; charset=ISO-8859-1
X-Priority: 3
X-Mailer: PHP7.3.22
如果我能够更改标头,使其认为电子邮件是从 something@someotherdomain.com 而不是 cpanel-account-username@server1.serverdomain.com 发送的,我认为这不会作为 server1.serverdomain .com 的 IP 地址与 someotherdomain.com 的 MX 或 SPF 记录不匹配,因为 cpanel 帐户的域不处理该应用程序用户的电子邮件地址域的电子邮件。
一般来说,一些在 CPanel 上运行 PHP(或使用 PHP mail())的编码人员之前肯定遇到过这种情况,想知道是否有人找到任何解决方案?我应该切换到 PhpMailer 以获得更好的标题控制,如果是,我应该改变什么?
【问题讨论】:
-
也许stackoverflow.com/questions/5935087/… 会提供一些有用的信息。
标签: php email phpmailer cpanel