php - 使用 Swiftmailer 从 gmail 发送电子邮件

标签 php email swiftmailer

我正在尝试使用 Swiftmailer 从 Gmail 发送电子邮件,但它打印出此错误:

Fatal error: Uncaught exception 'Swift_TransportException' with message 'Failed to authenticate on SMTP server with username "username@gmail.com" using 2 possible authenticators' in /home/websitename/public_html/cv/Swift-5.1.0/lib/classes/Swift/Transport/Esmtp/AuthHandler.php:184 Stack trace: #0 /home/websitename/public_html/cv/Swift-5.1.0/lib/classes/Swift/Transport/EsmtpTransport.php(312): Swift_Transport_Esmtp_AuthHandler->afterEhlo(Object(Swift_SmtpTransport)) #1 /home/websitename/public_html/cv/Swift-5.1.0/lib/classes/Swift/Transport/AbstractSmtpTransport.php(120): Swift_Transport_EsmtpTransport->_doHeloCommand() #2 /home/websitename/public_html/cv/Swift-5.1.0/lib/classes/Swift/Mailer.php(80): Swift_Transport_AbstractSmtpTransport->start() #3 /home/websitename/public_html/cv/profile2.php(69): Swift_Mailer->send(Object(Swift_Message)) #4 {main} thrown in /home/websitename/public_html/cv/Swift-5.1.0/lib/classes/Swift/Transport/Esmtp/AuthHandler.php on line 184

我的 PHP 代码:

require_once 'Swift-5.1.0/lib/swift_required.php';
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, "ssl")
      ->setUsername('username@gmail.com')
      ->setPassword('password');

    $mailer = Swift_Mailer::newInstance($transport);
    $message = Swift_Message::newInstance('Wonderful Subject')
      ->setFrom(array('username@gmail.com' => 'Ahmad Shadeed'))
      ->setTo(array('receiver@gmail.com' => 'YOU'))
      ->setBody('This is the text of the mail send by Swift using SMTP transport.');
    $numSent = $mailer->send($message); 

请问有什么帮助可以解决这个问题吗?

谢谢,

最佳答案

https://www.google.com/settings/security/lesssecureapps

同时登录到 SMPT 配置的 gmail 帐户

这里

->setUsername('username@gmail.com')
->setPassword('password');

并启用“访问安全性较低的应用程序”

关于php - 使用 Swiftmailer 从 gmail 发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25338336/

相关文章:

php - codeigniter 创建一个目录

php - 通过一个 Java 异步任务连接到多个 PHP 代码

php - 为什么我的其中一列显示为空?

java - 需要使 Javamail 更安全以进行 gmail 身份验证

vba - 向多个收件人发送电子邮件 vba

laravel - 数据数组不在电子邮件 View 中发送

yii2 - 如何在Yii2邮件程序中向多个收件人发送邮件,或如何在yii2邮件程序中添加setCc

php - 尝试确定 PHP/MySQL 中的日期差异,并传递给数据表

java - 打开 Activity 中的电子邮件

php - 如何使用 swiftmailer 获取电子邮件队列 ID?