使用PHP发送邮件失败
我使用的php代码与尝试通过电子邮件发送表单时使用的代码相同,我收到以下消息:
警告:mail()[unction.mail]: 无法连接到的邮件服务器 "本地主机"端口25,验证您的 中的"SMTP"和"SMTP_PORT"设置 Php.ini或在中使用ini_set 第44行的sendMailSuscribete.php
这是第40-54行:
$header .= "From: $email" . "
";
$header .= "Reply-To: $email" . "
";
$header .= "Return-Path: $email" . "
";
if(mail($to, $subject, $msg, $header)){
//Message sent!
redirect("http://www.domain.com/suscribete.html");
}else{
// Display error message if the message failed to send
echo "
<div class="MsgError">
<h1>Error…</h1>
<p>Disculpa <b><?=$name;?></b>, tu mensaje falló en ser enviado. Por favor vuelve a intentar.</p>
</div>";
}
我已经使用phpinfo()
进行了检查,我知道SMTP设置为本地主机,它使用的端口是25,因此我真的不知道可能是什么错误。
更新 我忘了说它是在Windows服务器上运行的,而这个php文件是我一直用于Unix服务器的文件,它应该包含一些不同的内容吗?
SMTP
mail
无法直接发送电子邮件(至少不能在推荐答案上),它需要SMTP服务器。在执行PHP脚本的主机上没有运行SMTP服务器。解决方案包括:
- 使用可以使用SMTP直接发送电子邮件的库,如PHPMailer或Swiftmailer(github repo)。
- 编辑php.ini指令以指向接受您的电子邮件的SMTP服务器。如果您不知道使用哪个主机,请咨询您的主机提供商。
- 在本地主机上设置SMTP服务器。
相关文章