OS X localhost上的Php mail()不断被拒绝作为垃圾邮件

时间:2014-03-06 10:37:41

标签: php macos email sendmail

我想在OS X 10.9上发送带有这个小PHP脚本的邮件。

mail($_POST['to'], $_POST['subject'], $_POST['message'], "From: " . $_POST['from']);

该方法返回true但消息永远不会到达我的收件箱:(我已经锁定了来自postfix的错误消息,他们告诉我它因垃圾邮件而被阻止。

Mar  6 11:30:38 xxxs-MacBook-Pro.local postfix/pickup[69960]: BB98E14DD64A: uid=70 from=<_www>
Mar  6 11:30:38 xxxs-MacBook-Pro.local postfix/cleanup[70313]: BB98E14DD64A: message-id=<20140306103038.BB98E14DD64A@xxxs-    MacBook-Pro.local>
Mar  6 11:30:38 xxxs-MacBook-Pro.local postfix/qmgr[69961]: BB98E14DD64A: from=<_www@xxxs-MacBook-Pro.local>, size=384,     nrcpt=1 (queue active)
Mar  6 11:30:39 xxxs-MacBook-Pro.local postfix/smtp[70315]: BB98E14DD64A: to=<xxx@xxx.com>, relay=mx3.me.com.akadns.net[17.172.    34.65]:25, delay=0.67, delays=0/0/0.53/0.14, dsn=5.7.1, status=bounced (host mx3.me.com.akadns.net[17.172.34.65] said: 550 5.7.1      Mail from IP 95.91.221.96 was rejected due to listing in Spamhaus PBL. For details please see http://www.spamhaus.org/query/bl?ip=95.    91.221.96 : xxx@xxx.com (in reply to RCPT TO command))
Mar  6 11:30:39 xxxs-MacBook-Pro.local postfix/cleanup[70313]: 8C52414DD64D: message-id=<20140306103039.8C52414DD64D@xxxs-    MacBook-Pro.local>
Mar  6 11:30:39 xxxs-MacBook-Pro.local postfix/bounce[70316]: BB98E14DD64A: sender non-delivery notification: 8C52414DD64D
Mar  6 11:30:39 xxxs-MacBook-Pro.local postfix/qmgr[69961]: 8C52414DD64D: from=<>, size=2669, nrcpt=1 (queue active)
Mar  6 11:30:39 xxxs-MacBook-Pro.local postfix/qmgr[69961]: BB98E14DD64A: removed
Mar  6 11:30:39 xxxs-MacBook-Pro.local postfix/local[70317]: 8C52414DD64D: to=<_www@xxxs-MacBook-Pro.local>, relay=local,     delay=0, delays=0/0/0/0, dsn=2.0.0, status=sent (delivered to mailbox)
Mar  6 11:30:39 xxxs-MacBook-Pro.local postfix/qmgr[69961]: 8C52414DD64D: removed

我怎么能绕过这个?

干杯丹尼尔

1 个答案:

答案 0 :(得分:2)

IP列在spamhaus中:

Mail from IP 95.91.221.96 was rejected due to listing in Spamhaus PBL.
  

Spamhaus PBL是最终用户IP地址范围的DNSBL数据库,不应向任何Internet邮件服务器提供未经身份验证的SMTP电子邮件,除非ISP专门为该客户使用提供这些邮件服务器。 PBL可帮助网络对动态和非MTA客户IP范围实施其可接受使用策略。

这仅表示您使用ISP提供的IP来发送电子邮件。 ISP主动禁止此操作以防止其客户发送垃圾邮件。最简单的解决方案是使用ISP提供的SMTP服务器。您可以在php.ini中将其配置为默认服务器而不是localhost:

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = mail.yourISP.com
; http://php.net/smtp-port
smtp_port = 25

有许多理由不使用PHP的本地mail()函数来发送邮件。最着名的替代方案是PHPMailer。此代码具有自己的内置SMTP客户端,以最恰当的方式发送邮件。您可以轻松地将其集成到您的软件中,以进一步防止您的邮件被标记为垃圾邮件。