php mail()转到垃圾邮件,但是当通过SMTP服务器发送时它工作正常吗?

时间:2011-12-15 19:47:59

标签: php email smtp gmail postfix-mta

我目前正在设置我的网络服务器,所以我可以通过PHP代码发送电子邮件,我的问题是通过php mail()发送的电子邮件总是发送到我的gmail垃圾邮件,当我通过SMTP服务器发送电子邮件时同样的VPS在Gmail上没有发送垃圾邮件。

他们的任何人都能帮忙吗?

更新

发送电子邮件:Ryan@Ryanteck.org.uk& Noreply@Mc-Serverlist.co.uk用于PHP Mail()(与ryan@ryanteck.org.uk相同)

通过PHP邮件发送时()或Webmin电子邮件发送垃圾邮件

通过SMTP服务器发送时通过Gmail发送确定

PHP邮件原始邮件: http://pastebin.com/TP2UfDP7(这是Noreply@Mc-Serverlist.co.uk)

Webmin电子邮件系统: http://pastebin.com/2VWvDd7v

Gmail SMTP: http://pastebin.com/wgewGnmk

3 个答案:

答案 0 :(得分:2)

您的vps没有配置rDNS,并且HELO指向不同的IP。 HELO中的不一致和丢失的rDNS会触发许多垃圾邮件过滤器。

  

收到:来自ryanteck.org.uk([95.154.250.75])

     

主持人75.250.154.95.in-addr.arpa。未找到:3(NXDOMAIN)

     

ryanteck.org.uk的地址为95.154.250.165

设置一个HELO主机名,其A-Record指向您的VPS,并将rDNS(PTR)配置为相同的主机名。

示例:

  • 创建新的A-Record'vps.ryanteck.org.uk 95.154.250.75'
  • 将HELO设置为“vps.ryanteck.org.uk”
  • 将75.250.154.95的反向DNS(PTR)设置为vps.ryanteck.org.uk

此外,您的发件人域名也有一些奇怪的“TXT”记录:

dig txt mc-serverlist.co.uk +short 
"95.154.250.165"
dig txt ryanteck.org.uk +short
"95.154.250.165"

您可能希望将这些更改为格式正确的SPF记录,例如

v=spf1 ip4:95.154.250.165 ip4:95.154.250.75 ~all

答案 1 :(得分:1)

试试这个:

mail('my@gmail.com', 'my subject', 'my text', 'From: noreply@myweb.com', '-f noreply@myweb.com');

答案 2 :(得分:1)

设置-f noreply@myweb.com参数,如PHP ref

中所述
  

例如,当使用带有-f sendmail选项的sendmail时,可以使用此选项设置信封发件人地址。

     

Web服务器运行的用户应作为受信任用户添加到sendmail配置中,以防止在使用此方法设置信封发件人(-f)时将“X-Warning”标头添加到邮件中。对于sendmail用户,此文件是/ etc / mail / trusted-users。