【问题标题】:Cannot send email using PHPMailer无法使用 PHPMailer 发送电子邮件
【发布时间】:2015-09-06 02:14:40
【问题描述】:

我正在尝试使用 phpmailer 发送电子邮件。这是我写的代码。

    $mail = new PHPMailer;

    $mail->isSMTP();
    $mail->Host = 'smtp.gmail.com';
    $mail->SMTPAuth = true;
    $mail->Username = 'shamir.towsif@gmail.com';
    $mail->Password = '*********';
    $mail->Port = 25;

    $mail->From = 'shamir.towsif@gmail.com';
    $mail->FromName = 'Shamir Towsif';
    $mail->addAddress('shamir.towsif@gmail.com', 'Shamir Towsif');
    $mail->addReplyTo('shamir.towsif@gmail.com', 'Information');

    $mail->isHTML(true);

    $mail->Subject = 'Here is the subject';
    $mail->Body    = 'This is the HTML message body <b>in bold!</b>';
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

    if(!$mail->send()) {
        echo "Message could not be sent.\n";
        echo "Mailer Error: " . $mail->ErrorInfo;
    } else {
        echo 'Message has been sent';
    }

这是我得到的错误。

Message could not be sent. Mailer Error: SMTP connect() failed.

我做错了什么。 SO中的其他问题没有帮助。提前致谢。

【问题讨论】:

  • 您是否对您的 Google 帐户使用双重身份验证?你确认你的密码是正确的吗?如果是这样,请尝试镜像函数调用here。
  • 您真的阅读了所有 800 多个关于 SO 上此确切错误消息的其他问题吗?我印象深刻!我猜the documentation 也没有帮助。

标签: php email smtp gmail phpmailer


【解决方案1】:

我遇到了类似的问题,但我认为您应该尝试将其添加到您的代码中:

$mail->Port = 587;
$mail->SMTPSecure = 'tls';

这是 PHPMailer 推荐的 GMail 设置,你可以看到example in their Github page。

【讨论】:

    【解决方案2】:

    通过将这些行添加到标准 PHPMailer 配置中,解决了几乎相同的问题。像魅力一样工作。

    $mail->SMTPKeepAlive = true;   
    $mail->Mailer = “smtp”; // don't change the quotes!
    

    所有使用 TLS 的 SMTP 标准设置和端口等的默认设置都被遵循。最终,我在这里研究解决方案时遇到了这段代码(来自 Simon Chen),https://webolio.wordpress.com/2008/03/02/phpmailer-and-smtp-on-1and1-shared-hosting/#comment-89

    【讨论】:

      【解决方案3】:

      标题:使用 PhpMailer 和 Gmail 从服务器发送电子邮件

      这是我解决类似问题的方法:

      1. 从 github (https://github.com/PHPMailer/PHPMailer) 下载 PHPMAILER 到您的计算机。

      2. 将其作为 .zip 文件上传到您的服务器,然后单击解压图标将其解压。将文件夹重命名为“phpmailer”或您希望的任何名称。

      3. 在邮件发送.php 文件中放入以下代码:

        require 'phpmailer/src/Exception.php'; require 'phpmailer/src/PHPMailer.php'; require 'phpmailer/src/SMTP.php'; $mail = new PHPMailer\PHPMailer\PHPMailer(); $mail->isSMTP(); $mail->SMTPDebug = 2; $mail->Host = 'smtp.gmail.com'; $mail->Port = 587; $mail->SMTPSecure = 'tls'; $mail->SMTPAuth = true; $mail->Username = "sender@gmail.com"; $mail->Password = "password"; $mail->setFrom('sender@gmail.com', 'Name'); $mail->addAddress('receiver@yahoo.com', 'Name'); $mail->Subject = 'Subject'; $mail->Body = 'This is a plain-text message body'; if (!$mail->send()) { echo "Mailer Error: " . $mail->ErrorInfo; } else { echo "Message sent!"; }

      4. 保存 php 文件。

      5. 打开浏览器并登录您在 php 脚本中使用的 gmail(google) 帐户。

      6. 转到此链接:https://support.google.com/accounts/answer/6009563

      7. 展开您的设备或应用可能不支持 Google 的安全标准。

      8. 点击不太安全的应用。

      9. 将允许安全性较低的应用:切换为开启(如果它是关闭)。

      10. 展开应用不支持两步验证

      11. 点击链接:https://accounts.google.com/DisplayUnlockCaptcha

      12. 点击继续

      13. 在浏览器中打开邮件发送php文件。

      14. 现在将发送电子邮件。

      这项技术对我有用。我希望它也对你们有用。

      快乐编码:-)

      【讨论】:

        猜你喜欢
        • 2020-11-25
        • 2019-01-19
        • 2023-03-20
        • 2017-07-19
        • 2017-10-05
        • 1970-01-01
        • 2015-11-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多