2011-03-30 128 views
13

简单代码:PHP邮件返回TRUE,但邮件没有发送

mail("[email protected]", $subject, $text);

它不发送电子邮件,但它仍然返回TRUE。什么是头发?

P.S.即使我添加标题,结果也是一样!

+0

照顾提供有关您的服务器的一些信息?它是Linux或Windows?你通过什么服务器发送?你能送您通过从PHP发送你的邮件服务器是使用邮件客户端的电子邮件? – ITroubs 2011-03-30 17:34:50

回答

12

man page for mail()

返回true如果邮件被 成功接受交付,否则 FALSE。

重要的是要注意,刚 是很重要的,因为该邮件接受 交付,它意味着邮件 实际上达不到预期的 目的地。


基本上没有什么你真的可以在纯醇做的PHP,除非你实际上检查电线,看看是怎么回事。我会建议使用一些邮件库,有一些指示邮件是否发送(如果存在)

3

你知道电子邮件没有发送的事实吗?该电子邮件可能会从您的php脚本发送到您的SMTP服务器,但会在第一个SMTP服务器和gmail之间的某处放弃。

尝试查看网络流量以验证电子邮件是否使用类似于wireshark的内容发送。

2

查看@ Neal的评论。简单地返回true意味着很少。

你应该检查你的php.ini文件,并确保您的SMTP服务器设置是否正确(如果在Windows上),或者你的sendmail的路径(Linux)的是正确的。从那里,检查你的sendmail配置。

+4

大声笑我不是一个评论,我的回答是... – Neal 2011-03-30 17:23:46