PHPMailer邮件未发送=>许多错误[重复]

Posted

技术标签:

【中文标题】PHPMailer邮件未发送=>许多错误[重复]【英文标题】:PHPMailer mail not sent => Many errors [duplicate] 【发布时间】:2016-09-17 21:41:20 【问题描述】:

我想通过 phpMailer 使用 Mail 功能,以便为填写表格的人提供电子邮件确认。

这是我的发送邮件代码 =>

 /* some codes with already a phpmyadmin database and a form */


function send_mail($email,$message,$subject) // method called, ignore the param
                           
        require_once('mailer/class.phpmailer.php');
    $mail = new PHPMailer();

    $mail->IsSMTP();
    $mail->SMTPDebug = 2;
    $mail->SMTPAuth = true;
    $mail->SMTPSecure = 'ssl';

    $mail->Host = 'smtp.gmail.com';
    $mail->Port = 465; // for ssl
    $mail->Username = 'an_email_test_1@gmail.com';
    $mail->Password = 'pwd_of_username_just_above';

    $mail->SetFrom('an_email_test_1@gmail.com'); // same as ->Username
    $mail->Subject = "Test Mail";
    $mail->Body = "Hi.";
    $mail->AddAddress('an_email_test_2@gmail.com');

    if (!$mail->Send())
        return 'Mail error:' . $mail->ErrorInfo;
    return 'Success, check your mail.';

我得到一个 "SMTP Class not found" 所以我在 require_once('mailer/class.phpmailer.php'); =>

        require 'mailer/PHPMailerAutoload.php';

感谢启用了 SMTPDebug,它给了我这个错误 >

2016-05-20 14:27:49 SERVER -> CLIENT: 220 smtp.gmail.com ESMTP h4sm20018967wjz.20 - gsmtp 
2016-05-20 14:27:49 CLIENT -> SERVER: EHLO "name_of_my_virtualhost" (I use WAMP3.0.4)
2016-05-20 14:27:49 SERVER -> CLIENT: 250-smtp.gmail.com at your service, [80.215.180.91] 250-SIZE 35882577 250-8BITMIME 250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250 SMTPUTF8 
2016-05-20 14:27:49 CLIENT -> SERVER: AUTH LOGIN 
2016-05-20 14:27:49 SERVER -> CLIENT: 334 VXNlcm5hbWU6 
2016-05-20 14:27:49 CLIENT -> SERVER: bG9nYW4ucGV5cnkxQGdtYWlsLmNvbQ== 2016-05-20 14:27:49 SERVER -> CLIENT: 334 UGFzc3dvcmQ6 
2016-05-20 14:27:49 CLIENT -> SERVER: Y29jaG9uOTM= 
2016-05-20 14:27:50 SERVER -> CLIENT: 534-5.7.14 Please log in via your web browser and 534-5.7.14 then try again. 534-5.7.14 Learn more at 534 5.7.14 https://support.google.com/mail/answer/78754 h4sm20018967wjz.20 - gsmtp 
2016-05-20 14:27:50 SMTP ERROR: Password command failed: 534-5.7.14 Please log in via your web browser and 534-5.7.14 then try again. 534-5.7.14 Learn more at 534 5.7.14 https://support.google.com/mail/answer/78754 h4sm20018967wjz.20 - gsmtp 
2016-05-20 14:27:50 SMTP Error: Could not authenticate. 
2016-05-20 14:27:50 CLIENT -> SERVER: QUIT 
2016-05-20 14:27:50 SERVER -> CLIENT: 221 2.0.0 closing connection h4sm20018967wjz.20 - gsmtp 
2016-05-20 14:27:50 SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting 

我真的不知道如何解决它,我现在只想发送一封没有任何信息的简单邮件,并为此专门创建了 2 个 gmail 地址。 n°1作为发送者,n°2作为接收者

我应该更改邮件功能中的 apache php.ini 还是其他内容? 谢谢你帮助我:)

【问题讨论】:

如果您阅读错误消息指向您的the troubleshooting guide 或此问题的许多重复项中的任何一个,这将有所帮助。 【参考方案1】:

您是否在 PHP 中激活了 php_openssl 扩展

使用菜单做

wampmanager -> PHP -> PHP Extension -> php_openssl

如果此菜单项旁边没有 TICK,请单击 php_openssl 菜单行,它将激活扩展并为您重新启动 Apache,以便看到更改。

您可能还需要在帐户上Allow less secure password

【讨论】:

我检查了 wampmanager 设置并且 php_openssl 已经被标记。此外,多亏了你,我用你的链接更改了我的邮件发件人的帐户安全性,现在我从我的邮件 n°2 收到了我想要的邮件。谢谢你,但是如果错误消息仍然存在 SMTPDebug 是否正常?

以上是关于PHPMailer邮件未发送=>许多错误[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在xampp上使用phpmailer发送邮件

PHPMailer 电子邮件发送成功但未收到 (EC2)

如何在 xampp 上使用 phpmailer 发送邮件

通过 PHPMailer 发送电子邮件时出现身份验证错误

发送消息但未使用PHPmailer获取电子邮件[重复]

使用 PHPMailer 通过 SMTP 发送电子邮件