0

我正在尝试让我的 PHP 脚本使用 mail() 命令发送邮件,我认为该命令使用 linux sendmail 或 mail 命令。

我已经尝试使用 PHP mail() 和 linux 命令行邮件命令发送,但在这两种情况下,邮件都会被发送,但它只能到达一些电子邮件。我已经测试了 5 个不同的域,其中 3 个收到了电子邮件,而其中 2 个没有。邮件甚至不会成为垃圾邮件,它们根本就不会到达。

使用 PHP mail(),我使用了正确的发件人地址标题,并且可以在我的 gmail 帐户中接收邮件。当我在 Gmail 中查看“原始”时,我可以看到一切正常(spf=pass 等...)

感觉就像是某些接收服务器自动拒绝了它。谁能指出我正确的方向?

更新:我检查了我的 MTA 日志文件,发现了这些:

Nov 24 08:30:09 ranits postfix/pickup[8484]: 94861EC738: uid=33 from=<www-data>
Nov 24 08:30:09 ranits postfix/cleanup[8555]: 94861EC738: message-id=<20111124083009.94861EC738@mydomain>
Nov 24 08:30:09 ranits postfix/qmgr[7985]: 94861EC738: from=<www-data@mydomain.eu>, size=351, nrcpt=1 (queue active)
Nov 24 08:30:09 ranits postfix/smtp[8631]: 94861EC738: to=<name@mydomain.ee>, relay=mh3.elkdata.ee[213.180.31.146]:25, delay=0.35, delays=0/0/0.35/0, dsn=5.5.2, status=bounced (host mh3.elkdata.ee[213.180.31.146] refused to talk to me: 504 5.5.2 <mydomain>: Helo command rejected: need fully-qualified hostname)

Nov 24 08:28:10 ranits postfix/local[8558]: 69563EC738: to=<myname@mydomain.eu>, relay=local, delay=0.01, delays=0/0/0/0, dsn=5.1.1, status=bounced (unknown user: "myname")

(当然我在这里用真实的电子邮件和域名替换了假的)

4

2 回答 2

2

您应该阅读 MTA 的日志文件以了解发生了什么。

于 2011-11-24T10:21:16.720 回答
0

你能举一些你的代码的例子吗?

我认为您忘记传递有效的标头,例如,有些电子邮件服务器会拒绝每封未设置 X-Mailer 的电子邮件。

于 2011-11-24T10:21:06.313 回答