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

时间:2014-03-20 15:33:23

标签: php email sendmail

我有以下设置:

服务器1(客户端服务器):

  • 111.111.111.111
  • 运行
  • 托管myawesomedomain.com 电子邮件服务器。
  • 包括TXT DNS:"V=SPF1 A MX INCLUDE:MYAWESOMEDOMAIN.COM ip4: 222.222.222.222/32 ?ALL"

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

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

我想通过php mail()功能使用服务器2向后台的注册用户发送电子邮件警告。

我尝试使用简单的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 domain of warning@myawesomedomain.com) client-ip=222.222.222.222;

我猜Outlook正在将电子邮件标记为span,因为它与GMAIL有同样的问题,我该怎么办?

谢谢!

1 个答案:

答案 0 :(得分:1)

要从myawesomedomain.com发送邮件,我认为TXT的{​​{1}}记录应为:

myawesomedomain.com

提供:

  • "v=spf1 a mx ip4:222.222.222.222 ?all" 的{​​{1}}记录是您的A地址
  • 您的MX记录指向实际为域发送邮件的计算机(而不仅仅是接收)。

我怀疑您的myawesomedomain.com CIDR表示法导致第二台服务器出现问题。