Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么mail()PHP函数不适用于WAMP默认安装?_Php_Email_Wamp_Sendmail - Fatal编程技术网

为什么mail()PHP函数不适用于WAMP默认安装?

为什么mail()PHP函数不适用于WAMP默认安装?,php,email,wamp,sendmail,Php,Email,Wamp,Sendmail,我有一个默认安装的WAMP服务器2.0 我正在尝试使用以下简单脚本发送电子邮件: <?php if (mail('my_email@gmail.com', 'My Title', 'Some Text')) { echo "OK"; } else { echo "Why ??"; } ?> 不幸的是,我收到了以下警告: 警告:mail()[function.mail]:无法在“localhost”端口25连接到mailserver,请验证php.ini中的“

我有一个默认安装的WAMP服务器2.0

我正在尝试使用以下简单脚本发送电子邮件:

<?php

if (mail('my_email@gmail.com', 'My Title', 'Some Text')) {
    echo "OK";
} else {
    echo "Why ??";
}

?>

不幸的是,我收到了以下警告:

警告:mail()[function.mail]:无法在“localhost”端口25连接到mailserver,请验证php.ini中的“SMTP”和“SMTP\u port”设置,或在第3行的C:\My\u Path\send\u email.php中使用ini\u set() 为什么??

原因可能是什么


我希望发送电子邮件是一项非常简单的任务…:(

要发送电子邮件,您需要一个传出电子邮件服务器(MTA)。在大多数Linux系统中,默认情况下都有一个,PHP将通过向sendmail提交邮件来使用它,sendmail是一个Linux应用程序/别名,用于向您安装的MTA提交邮件

默认情况下,Windows不包括MTA。在Windows中,要从PHP发送邮件,您需要访问某个传出电子邮件服务器,并告诉PHP该服务器的地址和端口。这在PHP.ini中使用
SMTP
SMTP\u-port
设置完成。端口
25
上的默认设置为
localhost
如果您自己在该机器上设置了邮件服务器,则此操作将失败


例如,如果您的ISP为您提供了一个发送邮件服务器,您可以使用它的地址和端口号。或者,如果您真的想发送邮件,您可以在本地计算机或本地网络的某个位置设置自己的邮件服务器。

要能够发送电子邮件,您需要一个发送邮件服务器(MTA)。在大多数Linux系统中,默认情况下都有一个,PHP将通过向sendmail提交邮件来使用它,sendmail是一个Linux应用程序/别名,用于向您安装的MTA提交邮件

默认情况下,Windows不包括MTA。在Windows中,要从PHP发送邮件,您需要访问某个传出电子邮件服务器,并告诉PHP该服务器的地址和端口。这在PHP.ini中使用
SMTP
SMTP\u-port
设置完成。端口
25
上的默认设置为
localhost
如果您自己在该机器上设置了邮件服务器,则此操作将失败


例如,如果您的ISP给您发送邮件服务器,您可以使用其地址和端口号。或者,如果您真的想发送邮件,您可以在本地计算机上或本地网络中的某个位置设置自己的邮件服务器。

简短回答:没有为本地计算机(本地主机)配置SMTP服务器.Windows不附带现成的内置SMTP服务器。您可以通过不同的主机(使用
SMTP
php.ini指令)中继邮件,但在测试环境邮件中很少会找到打开的中继


您可以使用这样的脚本,而不是使用
mail()
,它可以通过正确的身份验证直接连接到您的传出电子邮件服务器。下面是一个(虽然不完整)和一个。

简短回答:没有为本地计算机(本地主机)配置SMTP服务器.Windows不附带现成的内置SMTP服务器。您可以通过不同的主机(使用
SMTP
php.ini指令)中继邮件,但在测试环境邮件中很少会找到打开的中继

您可以使用这样的脚本,而不是使用
mail()
,它可以通过正确的身份验证直接连接到您的发送电子邮件服务器。下面是一个(虽然不完整)和一个。

您可以使用“假发送邮件”:

因此,在测试机器上不需要smtp服务器,只需在php.ini中设置程序的路径即可

再见! Stefan

您可以使用“假Sendmail”:

因此,在测试机器上不需要smtp服务器,只需在php.ini中设置程序的路径即可

再见!
Stefan

您需要访问发送邮件服务器才能发送邮件。
mail()
函数连接到php.ini文件中配置的服务器(如错误消息中所述),并指示它发送邮件。我建议您使用php和gmail搜索发送邮件,以获得有关
邮件基础知识的良好教程()
和smtp服务器。您需要访问传出邮件服务器才能发送邮件。
mail()
函数连接到php.ini文件中配置的服务器(如错误消息中所述)我建议用php和gmail在谷歌上搜索发送电子邮件,获得一个关于
mail()基础知识的好教程
和smtp服务器。谢谢,我真的在寻找一个简单易用的Windows解决方案,因为我相信当我把应用程序放在真正的Unix服务器上时,我不会有这个问题。那么什么是Windows最简单的解决方案呢?我想最简单的方法就是将它指向您ISP的smtp服务器(尽管如果您处于测试环境中,并且实际上不希望发送电子邮件,那么这样做可能不好)。或者您也可以查看这些解决方案:-看起来Windows Server还附带了自己的SMTP服务器,您可以安装。请注意,如果您使用ISP的发送电子邮件服务器,并且您在住宅连接上,您需要遵守他们的政策,这些政策可能禁止运行邮件列表,限制您可以发送的电子邮件数量,要求您从“发件人”中的ISP电子邮件地址发送的电子邮件如果你想发送严肃的电子邮件,你可以考虑自己设置一个SMTP服务器,或者支付一个外部邮件中继。谢谢,我真的在寻找一个简单易用的Windows解决方案,因为我相信当我把应用程序放在一个真正的UNIX服务器上时,我就不会有这个问题了。那么最简单的办法是什么呢?ion for Windows?我认为最简单的方法是将它指向ISP的SMTP服务器(尽管如果您在测试环境中,实际上不希望发送电子邮件,那么这样做可能不好)。或者您可以