【问题标题】:sending smtp mail with PHPMailer使用 PHPMailer 发送 smtp 邮件
【发布时间】:2021-03-12 03:19:17
【问题描述】:

我正在使用 phpmailer 从联系表单发送电子邮件。使用以下代码,我收到消息“已发送消息”,但没有任何消息到达。我已尝试使用我的 AOL 帐户和 Gmail 帐户。

<?php
$mail = new PHPMailer();

    // ---------- adjust these lines ---------------------------------------
    $mail->Username = "account@aol.com"; // your user name
    $mail->Password = "password";  // your Password
    $mail->AddAddress("recipient@company.com"); // recipients email
    $mail->FromName = "My name"; // readable name

    $mail->Subject = "Message from BeaverMjr.info";
    $mail->Body    = $body; 

    $mail->Host = "smtp.aol.com";
    $mail->Port = 587; //465 or 587
    $mail->IsSMTP(); // use SMTP
    $mail->SMTPAuth = true; // turn on SMTP authentication
    $mail->From = $mail->Username;

    //----------------------------------------------------------------------

    if(!$mail->Send())
    {
        echo "mail sent";
    }
?>

我在网上搜索时一直在摸不着头脑,却无处可寻。谁能告诉我我做错了什么?

【问题讨论】:

  • 检查垃圾邮件文件夹,等待一段时间,可能是灰表造成的延迟。
  • if(!$mail-&gt;Send()) { echo "mail sent"; } ...这个逻辑是倒退的。丢!

标签: php smtp phpmailer


【解决方案1】:

如果您收到 mail sent 消息,它实际上并没有发送,因为您的 if 语句前面有 NOT 运算符。

我建议您设置$mail-&gt;SMTPDebug = SMTP::DEBUG_SERVER;,然后更新您的代码以查看错误消息是什么:

if (!$mail->send()) {
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message sent!';
}

【讨论】:

    【解决方案2】:

    我更正了我的代码,发现我有一个连接错误。经过进一步查看,我发现端口号需要为 25。感谢您的帮助。

    【讨论】:

      猜你喜欢
      • 2018-09-10
      • 2017-11-04
      • 1970-01-01
      • 1970-01-01
      • 2011-04-06
      • 2017-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多