6

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

经过一番搜索,我遇到的最简单的解决方案是使用伪造的 sendmail通过 SMTP 将其转发到我的 GMail/Google 应用程序帐户并让它进行发送。问题是我没有收到任何错误,但没有发送电子邮件。

这是我所做的:

  • 将 sendmail.exe 和 sendmail.ini 复制到 WAMP 中的子文件夹
  • 通过 sendmail.ini 配置(配置设置没问题)
  • 编辑 php.ini 以添加 sendmail.exe 的路径
    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 -> localhostand选项。smtp_port -> 25

如果有人设法让这个工作,我真的很感激一些帮助。在我看来,使用伪造的 sendmail 比在您的机器上安装邮件服务器要简单得多。

谢谢!

PS请不要推荐PHPMailer之类的,因为我必须使用mail()函数。这就是埃尔格的工作方式。

4

4 回答 4

5

我终于让它工作了。问题是PHP在解析路径中带有空格的 .ini 文件时存在错误(对于 sendmail)。它已在 5.3.0 版中修复,但手册中没有这方面的信息。

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

谢谢大家的时间!

于 2009-10-22T10:37:11.097 回答
0

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

检查服务 (Run->services.msc) 并查找 Send Mail Transfer

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

于 2009-10-22T09:47:05.613 回答
0

我不确定这是否有帮助,我过去在这些情况下所做的是在我的机器上设置、outlook 并将其设置为每 5 分钟左右从 pop 接收电子邮件,这样我的 ip/机器就通过了身份验证反对流行音乐,如果我只是设置:

SMTP = localhost
smtp_port = 25

在 php.ini 中,邮件功能运行良好。因此,在您的情况下,只需将您的前景设置为使用 pop 并在 php.ini 中使用该 smtp,希望它应该可以工作。我还没有测试过这将是GMail。

于 2009-10-22T09:47:14.293 回答
0

PS请不要推荐PHPMailer之类的,因为我必须使用mail()函数。这就是埃尔格的工作方式。

...除非您使用的插件可以改变这种行为:http:
//community.elgg.org/pg/plugins/costelloc/read/16498/phpmailer

于 2009-10-22T09:56:22.280 回答