php利用swiftmailer发送邮件的坑
2017-02-18 本文已影响0人
nulldream
只想说这个坑让我有点累
一、设置好账号密码,满心欢喜的开始测试,纳尼!500的错误是什么鬼!!!
好吧!原来是自己没有开启php错误显示,开启方法如下:
1、打开文件并搜索并修改下行,把Off值改成On
display_errors = Off
改成
display_errors = on
2、在搜索一下error_reporting,修改如下:
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
改成
error_reporting = E_ALL | E_STRICT
3、最后重启apache服务
sudo /etc/init.d/apache2 restart
二、终于看到错误是什么了!然而看上去就是一脸懵逼
错误提示如下:
<br />
<b>Fatal error</b>: Uncaught Swift_TransportException: Failed to authenticate on SMTP server with username "984920281@qq.com" using 1 possible authenticators in /home/nulldream/www/AppPassword/swiftmailer-master/lib/classes/Swift/Transport/Esmtp/AuthHandler.php:184
Stack trace:
#0 /home/nulldream/www/AppPassword/swiftmailer-master/lib/classes/Swift/Transport/EsmtpTransport.php(312): Swift_Transport_Esmtp_AuthHandler->afterEhlo(Object(Swift_SmtpTransport))
#1 /home/nulldream/www/AppPassword/swiftmailer-master/lib/classes/Swift/Transport/AbstractSmtpTransport.php(120): Swift_Transport_EsmtpTransport->_doHeloCommand()
#2 /home/nulldream/www/AppPassword/swiftmailer-master/lib/classes/Swift/Mailer.php(80): Swift_Transport_AbstractSmtpTransport->start()
#3 /home/nulldream/www/AppPassword/register.php(65): Swift_Mailer->send(Object(Swift_Message))
#4 {main}
thrown in <b>/home/nulldream/www/AppPassword/swiftmailer-master/lib/classes/Swift/Transport/Esmtp/AuthHandler.php</b> on line <b>184</b><br />
没错就是这坑爹的qq邮箱,查了半天终于找到解决方法了,方法如下
1、一定要打你ssl链接扩展,php扩展打开方式如:
//打开你php.ini文件,本人的位于 /etc/php/7.0/apache2/php.ini
//搜索extension=php_openssl.dll
;extension=php_openssl.dll
//如果前面有分号记得去掉,就是启用该扩展
2、你的qq邮箱一定要打开smtp服务,然后拿到授权码,填入的密码是授权码,不是我们的密码
qq邮箱.jpeg3、部分代码如下:
//配置邮件服务器,得到传输对象
$transport=Swift_SmtpTransport::newInstance('smtp.qq.com', 465, 'ssl');
//这是关键