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