SMTP 服务器问题,PHP 邮件
Posted
技术标签:
【中文标题】SMTP 服务器问题,PHP 邮件【英文标题】:SMTP server problems, PHP mail 【发布时间】:2014-03-08 03:59:00 【问题描述】:我在 Windows 8.1 上安装了 Apache 和 php5,但无法从我的 localhost 网站发送邮件,出现消息“警告:mail() [function.mail]:无法在“localhost”端口连接到邮件服务器25,验证您在 php.ini 中的“SMTP”和“smtp_port”设置,或者在第 22 行的 C:\WebServer\Apache2.2\htdocs\WebContent\mailForm.php 中使用 ini_set()。 php代码在下面,我想没关系,因为它正确地执行了“回声”。有人可以就正在发生的事情提供任何提示吗?谢谢。
<?php
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email = $_POST['email'];
$message = $_POST['message'];
$to = "myemail@example.com";
$subject = "New_message";
if (($first_name == "") || ($last_name == "") || ($email == "") || ($message == ""))
echo '<script type="text/javascript">alert("Fill in all fields")</script>';
else
mail($to, $subject, $message, "From:" . $first_name . $last_name);
echo "Sucess;
?>
【问题讨论】:
【参考方案1】:您确定在运行 PHP 的主机上运行着邮件服务器吗?你提到你安装了 apache 和 PHP,但你没有提到你安装了一个邮件服务器。如果没有安装邮件服务器,那是你的问题。
如果主机上实际上运行着邮件服务器,那么这意味着 PHP 没有正确配置来找到它。创建一个像下面这样的小脚本,它使用phpinfo()
打印出你所有的 PHP 环境变量:
<? phpinfo(); ?>
检查sendmail_path
的值。这是主机上邮件服务器的正确位置吗?如果没有,请将您的 php.ini 更改为指向正确的位置。
如果实际上主机上没有运行邮件服务器,那么您可以安装一个,或者您可以通过托管在其他地方的邮件服务器(例如 smtp.gmail.com,如果您有一个gmail帐户)。这可以使用 phpmailer 来完成。以send email using Gmail SMTP server through PHP Mailer 为例。
【讨论】:
以上是关于SMTP 服务器问题,PHP 邮件的主要内容,如果未能解决你的问题,请参考以下文章
在 Linux 上使用带有 SMTP 服务器的默认 PHP 邮件功能
无法使用 PHP 代码和 SMTP 服务器向 yahoo(任何地址)发送邮件