4

最近 AOL 开始拒绝从我的生产服务器发送的电子邮件。

客户通过我的网站查询产品,如果他们愿意,可以自己“抄送”。我检查垃圾邮件(例如,如果请求包含禁止的短语、网址等,则不要发送)。但是,最近,如果询问者是 AOL 客户,则消息会反弹:

<*removed!*@aol.com>: host mailin-04.mx.aol.com[64.12.88.132] said: 521 5.2.1 :
    AOL will not accept delivery of this message. (in reply to end of DATA
    command)

电子邮件协议不是我的专业领域!我只是使用标准的 PHP mail() 函数,这已经工作多年了。

我查看了 AOL Postmaster 支持页面并联系了 AOL(显然,这是我的第一个停靠港 - 但他们尚未回复),另外我并不真正理解问题(这是找到解决方案的 50% !)。

http://postmaster-blog.aol.com/2014/04/22/aol-mail-updates-dmarc-policy-to-reject/

...似乎 AOL 在说“我们不喜欢您发送电子邮件的方式,很抱歉给您带来不便...”

如果有人对如何让 AOL 接受电子邮件有任何经验或具体见解,那么我很乐意听取您的意见。我猜这可能与我的电子邮件的形成方式有关:这多年来没有改变,而且(以前)我没有理由查看代码:

这是我如何发送电子邮件的编辑版本...

$recipient = "\"$supplier[supplierName]\" <$supplier[supplierEmail]>";
$subject = "$supplier[supplierName] enquiry";
$headers = "MIME-Version: 1.0".PHP_EOL ;
$headers .= "Content-type: text/html; charset=utf-8".PHP_EOL;
$headers .= "Reply-To: \"$cleanArrayEmail[realname]\" <$cleanArrayEmail[email]>".PHP_EOL;
$headers .= "From: \"Admin\" <ADMIN_EMAIL>".PHP_EOL;
if ($_POST['cc']){$headers .= "cc: \"$cleanArrayEmail[realname]\" <$cleanArrayEmail[email]>".PHP_EOL;}

mail ($recipient, $subject, $msg, $headers, '-f'. ADMIN_EMAIL );

非常感谢史蒂夫

4

3 回答 3

2

waza-ari 所说的同上(AOL 不会发送从非 AOL 服务器发送的电子邮件,其中包含 AOL 地址的回复)——这也适用于包含 Compuserve 地址的地址。我听说它也适用于 Hotmail 和 Yahoo 地址,但没有亲身经历过。

我有系统代码,如果其中一个人访问另一个人的研究数据(这是一个协作研究系统,所以用户想知道另一个人是否分享他们的兴趣),它会向 2 个人发送电子邮件。我更喜欢让回复只包含他们的两个地址,因为我不需要成为后续对话的一部分。但是,我不能在回复字段中输入 AOL/Compuserve 地址,因为它会被拒绝。

我的解决方案是让代码解析用户地址,如果其中任何一个位于其中一个域中,它会将我们网站的“info@”地址替换为回复地址,电子邮件正文显示两个用户的地址并告诉他们互相发送电子邮件。这可能无法很好地扩展到忽略说明而只是点击回复的更大用户群。它对我来说效果很好,但我每个月可能生成不到 100 封这样的电子邮件,而且在使用此代码的一年中,我从未有人意外回复过我。我在我们的联系表单中使用相同的“解析和替换”代码,其中用户的电子邮件地址通常会作为回复插入。

于 2015-03-04T19:54:52.733 回答
2

据我所知,AOL 确实拒绝了声称来自 AOL(FROM 标头,DMARC)的邮件,或者不是来自 AOL 但使用 AOL 地址作为回复标头的邮件。但是,我不能说这是否应归于 DMARC。因此,我可以确认史蒂夫在说什么,我在我的应用程序中注意到了同样的行为。

只要Reply-To 标头被删除或更改为非AOL 地址,邮件就会正确传递。然而有趣的是,只有被放在回复字段中的 AOL 客户不会收到邮件。如果 TO 标头中还有其他 AOL 邮件,则那些已发送且未被阻止的邮件。

我提到我不确定他们是否因为 DMARC 而拒绝它。在介绍 DMARC 的 AOL postmaster 博客中可以找到一个有趣的提示。这里明确建议使用回复行并将实际地址放在那里。此外,拒绝通过失败的 DMARC 检查的邮件通常会使用指出失败的 DMARC 检查的错误代码被拒绝。

于 2015-01-30T17:07:44.487 回答
1

AOL 最近实施了 DMARC 拒绝,之前的雅虎也是如此。这意味着如果您的 PHP 代码尝试发送声称来自 Yahoo.com 或 AOL.com 地址的电子邮件,则收件人邮件服务器(无论是 AOL、Yahoo、Gmail 还是任何人)都不会接受它其他支持 DMARC。

查看您的电子邮件 FROM 地址,是 AOL 还是 Yahoo?如果是这样,那么 DMARC 可能是您的问题,如果不是,则可能是其他问题。DMARC 策略在每个域的 DNS 记录中设置,您可以使用此工具检查 FROM 域的 DMARC 策略。

https://dmarcian.com/dmarc-inspector/aol.com

于 2014-07-23T10:23:07.593 回答