【发布时间】:2011-08-19 16:46:25
【问题描述】:
我正在尝试从 localhost 发送电子邮件,但收到错误消息:
无法在“localhost”端口 25 连接到邮件服务器,请验证 php.ini 中的“SMTP”和“smtp_port”设置或使用 ini_set()。
这是否意味着我需要设置本地邮件服务器?如果是这样,如何以及哪一个最简单。
提前致谢
保罗
【问题讨论】:
-
是的,你需要在windows上设置一个邮件服务器
我正在尝试从 localhost 发送电子邮件,但收到错误消息:
无法在“localhost”端口 25 连接到邮件服务器,请验证 php.ini 中的“SMTP”和“smtp_port”设置或使用 ini_set()。
这是否意味着我需要设置本地邮件服务器?如果是这样,如何以及哪一个最简单。
提前致谢
保罗
【问题讨论】:
是的,确实如此,如果您想将邮件发送到外部电子邮件地址(而不是系统本地用户,这非常困难)。
大多数托管公司(例如 GoDaddy)都为您提供了此设置,因此 PHP 的 mail() 函数无需您执行任何操作即可工作。
如果您在自己的系统上配置它,您可能需要考虑 (a) 将 sendmail 配置为使用备用 SMTP 网关(我经常使用 Gmail)或 (b) sendmail 的完整替代方案(Zend Mail 看起来很有希望。)
【讨论】:
如果你使用的是Linux,通常不需要设置邮件服务器,
如果您使用的是 Windows,是的,您确实需要设置邮件服务器
【讨论】:
这是我使用的,但仅用于测试目的:
http://www.toolheap.com/test-mail-server-tool/
几乎没有配置,在其他几个邮件服务器出现故障后,我让它开箱即用(在 Win7 上)。它不发送实际邮件,而是将其存储为 .eml 文件。这对于测试邮件列表非常有用,例如,您并不想发送 2000 封电子邮件,但希望从您的应用程序中获得真实的结果。
它可能看起来像垃圾,但对我来说效果很好。
【讨论】:
如果您只对发送邮件感兴趣,您可以通过 SMTP 协议使用任何 SMTP 服务器。这是一个tutorial,用于设置 PHP 以使用远程 SMTP 服务器。
【讨论】:
是的,您需要一个邮件服务器才能发送邮件,但即使您这样做了,您也无法发送到本地网络以外的地址,因为来自您计算机的邮件将被所有收件人阻止出于垃圾邮件的原因。
您可以使用pear mail function 连接到外部 smtp 提供商(如 gmail)为您发送邮件。更多信息here 和here。
【讨论】:
smtp4dev 在我看来是在 Windows 上捕获本地 SMTP 流量的最佳工具。
它在 localhost 端口 25 上侦听 SMTP,并在每次发布新邮件时弹出通知(它实际上并不将邮件转发给其收件人)。然后,您可以在您喜欢的邮件代理中打开邮件或将其保存到文件中。
【讨论】: