在Windows上的PHP邮件():没有错误,电子邮件不发送

我目前正在试图debugging基于Elgg的网站(我没有开发它),我想直接从本地开发机器(WinXP)发送电子邮件。 我使用Apache 2.2.11和PHP 5.3.0运行WAMP

经过一番search,我遇到的最简单的解决scheme是使用假发送邮件通过SMTP转发到我的GMail /谷歌应用程序帐户,让它做发送。 问题是我没有任何错误,但电子邮件没有被发送。

以下是我所做的:

  • 将sendmail.exe和sendmail.ini复制到WAMP中的子文件夹中
  • 通过sendmail.ini进行configuration(configuration设置正常)
  • 编辑php.ini来添加sendmail.exe的path
    sendmail_path = "C:\Program Files\wamp\bin\sendmail\sendmail.exe -t"
  • 在php.ini中注释掉了Windows SMTP设置
    ; SMTP = localhost
    ; smtp_port = 25
    ; sendmail_from = xxx@domain.com
    ; mail.force_extra_parameters =

mail.log文件显示以下内容:

 mail() on [C:\Program Files\wamp\www\mail.php:9]: To: xxx -- Headers: From: xxx Reply-To: xxx X-Mailer: PHP/5.3.0 

我的猜测是,问题是默认的Windows选项(指定服务器而不是sendmail实用程序)未被覆盖。 在phpinfo()我仍然得到SMTP -> localhostsmtp_port -> 25选项,即使我评论他们。

如果任何人设法得到这个工作,我真的很感激一些帮助。 在我看来,使用假的sendmail比在你的机器上安装邮件服务器简单得多。

谢谢!

PS请不要build议PHPMailer之类的,因为我必须使用mail()函数。 这就是Elgg的工作原理。

我已经得到它最终工作。 问题是, PHP解析.ini文件的路径中有空格(sendmail) 有一个错误 。 它在5.3.0版本中得到修复,但手册上没有这方面的信息。

所以,是的,可以在Windows上使用PHP的sendmail:D。

谢谢大家的时间!

确保您的本地计算机上运行了SMTP服务,并且SMTP端口(25)已打开。

检查服务(Run-> services.msc)并查找发送邮件传输

如果在服务列表中找不到SMTP,则必须安装它:要添加,请执行以下操作:运行 – > appwiz.cpl->添加删除Windows组件 – > IIS->详细信息 – > SMTP

我不确定这是否有帮助,我在这些情况下曾经做过的事情是设置,在我的机器上的展望,并设置从每隔5分钟从流行的电子邮件,这样我的IP /机器进行身份验证反对流行,如果我只是设置:

 SMTP = localhost smtp_port = 25 

在php.ini中,邮件功能工作正常。 所以在你的情况下,只要设置你的前景工作与流行,并在php.ini中使用该smtp,并希望它应该工作。 我没有测试过这将GMail虽然。

PS请不要建议PHPMailer之类的,因为我必须使用mail()函数。 这就是Elgg的工作原理。

…除非你使用插件来改变这种行为:
http://community.elgg.org/pg/plugins/costelloc/read/16498/phpmailer