我有WAMP Server 2.0的默认安装。
我正在尝试使用这个简单的脚本发送电子邮件:
<?php
if (mail('my_email@gmail.com', 'My Title', 'Some Text')) {
echo "OK";
} else {
echo "Why ??";
}
?>
不幸的是,我收到以下警告:
警告:mail()[function.mail]:无法连接到“localhost”端口25的邮件服务器,验证php.ini中的“SMTP”和“smtp_port”设置或使用C中的ini_set() :第3行:\ My_Path \ send_email.php 为什么??
可能是什么原因?
我希望发送电子邮件是一项非常简单的任务...... :(
答案 0 :(得分:6)
为了能够发送电子邮件,您需要一个外发电子邮件服务器(MTA)。在大多数Linux系统中,默认存在一个,PHP将通过向sendmail提交邮件来使用它,这是一个Linux应用程序/别名,用于向您安装的任何MTA提交邮件。
默认情况下,Windows不包含MTA。在Windows中,为了能够从PHP发送邮件,您需要访问某些外发电子邮件服务器并告诉PHP它的地址和端口。这是在php.ini中使用SMTP
和smtp_port
设置完成的。端口localhost
上的默认值为25
。除非您自己在该计算机上设置了邮件服务器,否则将失败。
例如,如果您的ISP为您提供外发邮件服务器,您可以使用其地址和端口号。或者,如果您认真发送邮件,则可以在本地计算机或本地网络中的某个位置设置自己的邮件服务器。
答案 1 :(得分:1)
简答:没有为本地计算机(localhost)配置SMTP服务器。 Windows不附带内置的SMTP服务器,随时可以开箱即用。您可以通过其他主机(使用SMTP
php.ini指令)中继邮件 - 但是您很少会找到测试环境邮件的开放中继。
您可以使用PHPMailer这样的脚本,而不是使用mail()
,它可以通过正确的身份验证直接连接到您的外发电子邮件服务器。这是quick snippet for Gmail(虽然不完整)和full example。
答案 2 :(得分:0)