当我尝试用PHP发送电子邮件时,我一直收到此错误:
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\dressoholic\register.php on line 50
我的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@yoursite.com
我正在使用笔记本电脑作为服务器..我做错了什么?感谢。
答案 0 :(得分:28)
您需要在本地运行邮件服务器。 如果是Unix,请启用sendmail 如果这是Windows安装简易邮件传输服务器(不确定名称是否正确)的组件IIs。例如。对于Windows 2003,请遵循以下:http://msdn.microsoft.com/en-us/library/8b83ac7t.aspx
答案 1 :(得分:19)
使用php邮件功能发送邮件。 但邮件功能需要SMTP服务器才能发送电子邮件。 我们需要在php.ini文件中提到SMTP主机和SMTP端口。 成功配置SMTP服务器后,邮件将通过php脚本成功发送。
答案 2 :(得分:19)
在Windows上,几乎所有AMPP(Apache,MySQL,PHP,PHPmyAdmin)软件包都不包含邮件服务器(但几乎所有裸Linux都有!)。因此,在Windows下使用PHP时,您需要设置一个邮件服务器!
Imo是最好也是最简单的工具:http://smtp4dev.codeplex.com/
SMTP4Dev是一个简单的单文件邮件服务器工具,可以收集它发送的邮件(因此它不会真正发送邮件,只是保留它们进行开发)。完美的工具。
答案 3 :(得分:9)
如果你只是在localhost上运行你的应用程序并且它尚未生效,我相信使用它发送邮件非常困难。
将应用程序联机后,我相信这个问题应该自动解决。但我认为ini_set()
可以帮助您在运行时更改php.ini
中的值。
答案 4 :(得分:8)
首先,如果您从ISP提供商(将允许您转发邮件)将该localhost条目更改为MTA的DNS名称,则不会强制您在本地主机上使用SMTP,它将立即生效,所以不要乱用你自己的电子邮件服务。只是尝试使用您的提供商SMTP服务器,它将立即工作。
答案 5 :(得分:3)
PHP邮件功能可以在两种情况下发送电子邮件:
一个。尝试通过unix sendmail 程序发送电子邮件 在linux上它将执行程序“sendmail”,将所有params放到sendmail和所有。
OR
湾连接到邮件服务器(使用smtp协议和主机/端口/用户名/从php.ini传递)并尝试发送电子邮件。
如果php无法连接到电子邮件服务器,它将发出警告(您在日志中看到此类工作) 要解决此问题,请在本地计算机上安装smtp服务器或使用任何可用的服务器。如何设置/配置smtp,你可以在php.net上找到
答案 6 :(得分:0)
将SMTP = localhost更改为SMTP = smtp.gmail.com
答案 7 :(得分:-1)
php不允许或认为从localhost发送电子邮件非常困难,但如果您将项目上传到服务器,则会解决此问题。如果你想检查本地服务器上是否发送了电子邮件,那么你必须下载smtp4dev并安装并运行它。如果您的电子邮件发送成功或代码存在问题,这将为您提供一条消息。