3

调用邮件函数时会产生错误

警告:mail():无法在“localhost”端口 25 连接到邮件服务器,请验证 php.ini 中的“SMTP”和“smtp_port”设置或使用 ini_set()

我正在使用 Wampserver 2,我认为错误是因为 Wamp 没有附带邮件服务器。然后我添加了以下代码(根据此处的答案

ini_set("SMTP","aspmx.l.google.com");
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
$headers .= "From: test@gmail.com" . "\r\n";
mail("email@domain.com","test subject","test body",$headers);

它产生了以下错误

无法在“aspmx.l.google.com”端口 25 连接到邮件服务器,请验证 php.ini 中的“SMTP”和“smtp_port”设置或使用 ini_set()

在位于 C:\wamp\bin\php\php5.4.3 的 php.ini 文件中,它包含以下设置

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

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = you@yourdomain

如何在本地运行文件时发送电子邮件?

在我工作的地方,公司 ISP 用于邮件的哪些信息确实无法获得(实际上该公司是它自己的 ISP)。是否有另一种方法可以在没有找到正确端口的情况下进行测试,如果存在的话?

4

2 回答 2

3

安装 smtp4dev 就完成了

http://smtp4dev.codeplex.com/

于 2014-02-07T11:38:36.140 回答
0

检查您是否能够将端口 25 用于电子邮件。一些供应商不允许这样做。例如:http ://customer.comcast.com/help-and-support/internet/email-client-programs-with-xfinity-email/ 。找出建议的设置并更改 php.ini。如果这不起作用,请更新。

验证:谷歌“[您的互联网服务提供商]是否允许在端口 25 上发送电子邮件”或“[您的互联网服务提供商] 是否阻止端口 25 上的电子邮件”的一些变体,这应该会给您一些遇到此问题的人的反馈前。

如果这不会产生结果,则可以使用一些命令行方法来验证端口 25 是否打开:https ://kb.mediatemple.net/questions/888/Checking+your+outgoing+mail+server+%28Is+Port+25 +阻止%3F%29

如果您的供应商已经封锁了 25 端口,那么他们很可能已经提供了一个可供使用的替代端口。跟踪它并在您的 php.ini 文件中切换您的 smtp_port 并查看是否可以解决问题。

于 2013-07-30T18:52:21.463 回答