沃梦达 / 编程问答 / php问题 / 正文

使用PHP发送邮件失败

Send Mail using PHP failing(使用PHP发送邮件失败)

本文介绍了使用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&hellip;</h1>
        <p>Disculpa <b><?=$name;?></b>, tu mensaje fall&oacute; en ser enviado. Por favor vuelve a intentar.</p>
</div>";
}

我已经使用phpinfo()进行了检查,我知道SMTP设置为本地主机,它使用的端口是25,因此我真的不知道可能是什么错误。

更新 我忘了说它是在Windows服务器上运行的,而这个php文件是我一直用于Unix服务器的文件,它应该包含一些不同的内容吗?

SMTP

mail无法直接发送电子邮件(至少不能在推荐答案上),它需要SMTP服务器。在执行PHP脚本的主机上没有运行SMTP服务器。解决方案包括:

  1. 使用可以使用SMTP直接发送电子邮件的库,如PHPMailer或Swiftmailer(github repo)。
  2. 编辑php.ini指令以指向接受您的电子邮件的SMTP服务器。如果您不知道使用哪个主机,请咨询您的主机提供商。
  3. 在本地主机上设置SMTP服务器。
第1点是个好主意,因为这些库提供了抽象,使得不需要处理诸如正确地将MIME消息组合在一起之类的低级工作。第二点。可能是最不麻烦的。我建议不要使用第3点。除非您真的想自己管理电子邮件服务器。

这篇关于使用PHP发送邮件失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:使用PHP发送邮件失败

基础教程推荐