PHP mail():两台服务器和SPF


PHP mail(): Two servers and SPF

我有以下设置:

服务器1 (client-server):
  • 运行在111.111.111.111
  • Hosting myawesomedomain.com with电子邮件服务器。
  • 包含TXT DNS: "V=SPF1 A MX INCLUDE:MYAWESOMEDOMAIN.COM ip4: 222.222.222.222/32 ?ALL"

服务器2(我的一台机器):

  • 主机名:warning.othercorp.net
  • 222.222.222.222运行

我想使用服务器2,通过PHP 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);

我不是发送电子邮件的专家,但我能做些什么来避免被标记为垃圾邮件?日志含义服务器IP为2的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.comTXT记录应该是:

"v=spf1 a mx ip4:222.222.222.222 ?all"
提供:

    myawesomedomain.comA记录是你的111.111.111.111地址
  • 您的MX记录指向实际为域发送邮件的机器(而不仅仅是接收)。

我怀疑您的/32 CIDR符号导致第二台服务器出现问题。

SPF记录中不正确的位置或双空格会导致SPF记录无效。

您共享的记录是:

V=SPF1 A MX INCLUDE:MYAWESOMEDOMAIN.COM ip4: 222.222.222.222/32 ?ALL

ip4:222.222.222.222之间不能有空格

这可能有助于解决剩下的问题。