【问题标题】:Send Email from PHP Script从 PHP 脚本发送电子邮件
【发布时间】:2011-04-28 18:07:30
【问题描述】:

我编写了一些代码来使用 PHPMailer 从我的 PHP 脚本发送电子邮件。出于某种原因,脚本没有发送消息。


这是我的代码:

<?php
require_once("PHPMailer/class.phpmailer.php");
$mail=new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Host = "ssl://smtp.gmail.com";
$mail->Port = 465;
$mail->Username = "admin@zbrowntechnology.com";
$mail->Password = "PASSHERE";
$mail->SetFrom = "admin@zbrowntechnology.com";
$mail->AddAddress("zach@zbrowntechnology.com.com");
$mail->Subject = "Confirm Web Lock Registration!";
$mail->Body = "Please confirm your Web Lock Registration by clicking here!";
$mail->WordWrap = 50;

if(!$mail->Send())
{
   echo 'Message was not sent.';
   echo 'Mailer error: ' . $mail->ErrorInfo;
} else {
  echo "Message Sent!";
}
?>

这是错误回显:

SMTP Error: Could not connect to SMTP host. Message was not sent.Mailer error: SMTP Error: Could not connect to SMTP host.

【问题讨论】:

  • 您的错误信息是否得到回应,如果是,那是什么?
  • 您能否提供有关该问题的更多信息?是打印出错误消息,还是说“消息已发送!”但你还是没有收到?
  • @Zachary Brown:永远不要像这样公开分享您的用户名和密码 :)
  • 您可能想删除或更改问题中的密码...查看此内容的任何人现在都可以登录您的电子邮件帐户。

标签: php email send phpmailer


【解决方案1】:

您的错误消息可能是由服务器上的防火墙设置引起的。此错误消息通常是由防火墙阻止端口上的传出连接引起的。

您还应该确保已启用 openssl 扩展。

您修复的原始答案:

您发送到 zach@zbrowntechnology.com.com,这不是您想要的地址。

您需要删除第二个 .com 并将其更改为 zach@zbrowntechnology.com

【讨论】:

  • 已更正。还是同样的问题。
  • 我根据你给出的错误信息添加了一些额外的问题。
【解决方案2】:

我也在使用 PHPMailer,刚刚尝试了你的设置,得到了同样的错误。 这是我的设置对我有用(我展示了 ->> 你没有的东西,或者对我来说不同)

$mail->PHPMailer = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
->> $mail->SMTPSecure = "ssl";
->> $mail->Host = "smtp.gmail.com"; //not ssl://smtp.gmail.com
$mail->Port = 465; etc...

其他一切都是一样的,除了我不使用自动换行,但我检查了,它没有导致问题。

【讨论】:

    【解决方案3】:

    您需要指定 gmail 用户名和密码,因为这是您在 smtp 设置中使用的:

    $mail->Username = "email_address@gmail.com";
    $mail->Password = "yourgmailpassword";
    

    【讨论】:

    • 地址是用户名。该公司将 Google Apps 用于电子邮件。
    【解决方案4】:

    作为一般提示,请尝试打开调试:

    $mail->SMTPDebug  = 2; // enables SMTP debug information (for testing)
                           // 1 = errors and messages
                           // 2 = messages only
    

    来自 SO:Debugging PHP Mail() and/or PHPMailer

    【讨论】:

      【解决方案5】:

      作为一个小建议,您可能还想尝试使用 Zend_Mail,您可以愉快地使用它,而无需走整个 MVC 路线,而且信息量很大

      【讨论】:

        猜你喜欢
        • 2011-09-16
        • 2012-08-25
        • 1970-01-01
        • 2013-02-17
        • 1970-01-01
        • 2012-09-12
        • 1970-01-01
        • 1970-01-01
        • 2018-09-06
        相关资源
        最近更新 更多