我目前正在设置我的web服务器,这样我就可以通过PHP代码发送电子邮件,我遇到的问题是,通过PHP邮件()发送的电子邮件总是发送到我的gmail垃圾邮件,因为当我通过SMTP服务器发送电子邮件时,相同的VPS有在gmail上它不发送到垃圾邮件。
有谁能帮忙吗?
更新:
通过Ryan@Ryanteck.org.uk &Noreply@Mc-Serverlist.co.uk For PHP Mail()(与ryan@ryanteck.org.uk相同)
当通过PHP邮件()或Webmin邮件发送时,它发送到垃圾邮件
当通过SMTP服务器发送时,通过Gmail发送ok
PHP邮件:http://pastebin.com/TP2UfDP7(这是Noreply@Mc-Serverlist.co.uk)
Webmin电子邮件系统:http://pastebin.com/2VWvDd7v
Gmail SMTP:http://pastebin.com/wgewGnmk
您的vps没有配置rDNS, HELO指向不同的ip。HELO不一致和缺少rDNS会触发许多垃圾邮件过滤器。
收到:from ryanteck.org.uk ([95.154.250.75])
主机75.250.154.95.in-addr.arpa。not found: 3(NXDOMAIN)
ryanteck.org.uk的地址为95.154.250.165
设置HELO主机名,其a - record指向VPS,并将rDNS (PTR)配置为相同的主机名。
的例子:
- 创建新a - record ' vs.ryanteck.org.uk 95.154.250.75'
- 设置HELO为' vs.ryanteck.org.uk '
- 设置75.250.154.95的反向DNS (PTR)为vs.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
试试这个:
mail('my@gmail.com', 'my subject', 'my text', 'From: noreply@myweb.com', '-f noreply@myweb.com');
设置-f noreply@myweb.com
参数,如PHP ref
例如,当使用-f sendmail选项使用sendmail时,这可以用来设置信封发件人地址。
当使用此方法设置信封发件人(-f)时,应该将web服务器运行的用户添加为sendmail配置的可信用户,以防止在消息中添加'X-Warning'标头。对于sendmail用户,这个文件是/etc/mail/trusted-users。