PHP mail():两台服务器和SPF
我有以下设置: 服务器1(客户端服务器):PHP mail():两台服务器和SPF,php,email,sendmail,Php,Email,Sendmail,我有以下设置: 服务器1(客户端服务器): 以111.111.111.111运行 使用托管myawesomedomain.com 电子邮件服务器 包含TXT DNS:“V=SPF1 A MX包含:MYAWESOMEDOMAIN.COM ip4:222.222.222/32?全部” 服务器2(我的一台计算机): 主机名:warning.othercorp.net 运行于222.222.222.222 我想使用Server2,通过PHPmail()函数向后台注册用户发送电子邮件警告 我试图用
- 以
111.111.111.111运行
- 使用托管
电子邮件服务器myawesomedomain.com
- 包含TXT DNS:
“V=SPF1 A MX包含:MYAWESOMEDOMAIN.COM ip4:222.222.222/32?全部”
- 主机名:
warning.othercorp.net
- 运行于
222.222.222.222
mail()
函数向后台注册用户发送电子邮件警告
我试图用一个简单的PHP脚本发送邮件,如下所示,但它在Oulook.com中被标记为垃圾邮件,GMAIL说它是通过warning.othercorp.net
$to = "someone@outloook.com";
$subject = 'Warning!';
$message = 'hello! You\'ve been warned!';
$headers = 'From: warning@myawesomedomain.com' . "\r\n" .
'Reply-To: info@myawesomedomain.com' . "\r\n";
$res = mail($to, $subject, $message, $headers);
var_dump($res);
我不是发送电子邮件的专家,但我能做些什么来避免标记为垃圾邮件的电子邮件?服务器2的IP的SPF条目不够吗?为什么?
编辑: 我在做一些测试,在查看发送到@gmail地址的测试电子邮件的来源后,我得到了以下信息:
Received-SPF: neutral (google.com: 222.222.222.222 is neither permitted nor denied by best guess record for the domain of warning@myawesomedomain.com) client-ip=222.222.222.222;
我猜Outlook会将该电子邮件标记为垃圾邮件,因为它与GMAIL有相同的问题,我该怎么办
谢谢大家! 要从
myawesomedomain.com
发送邮件,我认为myawesomedomain.com
的TXT
记录应该是:
"v=spf1 a mx ip4:222.222.222.222 ?all"
前提是:
的myawesomedomain.com
记录是您的A
地址111.111.111
- 您的MX记录指向实际为域发送邮件的机器(而不仅仅是接收邮件)
我怀疑是您的
/32
CIDR符号导致第二台服务器出现问题。TTL设置为86400。它几乎是在48小时前更新的。openspf.org
建议使用CIDR,但他们也说没有它它也可以工作。有没有一种方法可以在不更改第一台服务器上的DNS的情况下调试它?我需要让客户来做…我不知道如何调试它,对不起。这种事情真让人痛苦。通常,当我测试这样的东西时,我会在调整和测试时将记录的TTL降到很低的水平。但是,当你不得不要求客户这么做的时候,这很糟糕。嘿,请检查我上次的编辑。我还要求客户按照你告诉我的删除苹果酒,但我仍在等待更改!根据我的经验,我给出的确切TXT记录应该足以解决您显示的引用标题中的问题。我没法在这方面提供更多的信息。很抱歉如果您向我发送域,我可以查询服务器以查看它的响应。我成功地解决了一半的问题(Gmail),将发件人
和发件人
电子邮件头设置为不同的值,其中发件人
是我客户的电子邮件,而发件人是我用来发送电子邮件的服务器上的本地帐户。设置返回路径
(与本地服务器相同)和回复地址也很重要。