yii2.0邮件发送问题解决
Posted 努力的喵喵
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了yii2.0邮件发送问题解决相关的知识,希望对你有一定的参考价值。
用yii2.0邮件类做一个定时发送邮件的功能,在本地测试没问题,放到线上就说连接163服务器超时各种问题,最后查查改改,已经解决了,现在就把遇到的问题记录下。
<php $config = [ \'id\' => \'basic-console\', \'basePath\' => dirname(__DIR__), \'bootstrap\' => [\'log\'], \'controllerNamespace\' => \'app\\commands\', \'mailer\' => [ \'class\' => \'yii\\swiftmailer\\Mailer\', \'useFileTransport\' =>false, \'viewPath\' => \'mail/daybasic\', \'transport\' => [ \'class\' => \'Swift_SmtpTransport\', \'host\' => \'smtp.qq.com\', //每种邮箱的host配置不一样 \'username\' => \'***********@qq.com\', \'password\' => \'16位授权码\', // 授权码 \'port\' => \'465\', \'encryption\' => \'ssl\', ],
// \'transport\' => [
// \'class\' => \'Swift_SmtpTransport\',
// \'host\' => \'smtp.163.com\', //每种邮箱的host配置不一样
// \'username\' => \'***********@163.com\',
// \'password\' => \'*********\', // 授权码
// \'port\' => \'25\', //994端口
// \'encryption\' => \'tls\',//ssl
// ],
\'messageConfig\'=>[ \'charset\'=>\'UTF-8\', \'from\'=>[\'**********@qq.com\'=>\'admin\'] ], ], ] ?>
顺带把发送邮件的代码也贴上。在sendemailController.php中
//发邮件 $content="22222222"; //$app->params[\'email_users\']=[111@qq.com,22222@qq.com]; $messages = []; foreach (\\Yii::$app->params[\'email_users\'] as $user) { $messages[] = \\Yii::$app->mailer->compose() ->setTo($user) ->setSubject("["标题标题") //->setTextBody($content); ->sethtmlBody($content); } \\Yii::$app->mailer->sendMultiple($messages);
yii2.0后台的配置文件,因为写的是command下的文件,所有配置是console.php里。线上的文件一个在阿里云上,一个在百度云上,阿里云服务器上貌似25端口给禁止了,所以用连接不上163邮箱,修改端口25=>994,‘encryption’=>ssl。
在百度云上的服务器不知道什么原因发送就是不成功,163邮箱改成QQ邮箱就可以了,走的端口不一样,估计也是端口问题。用qq邮箱需要注意的是修改邮箱配置如下:
首先开启pop3/smtp服务,还有一点就是第三方登陆需要授权码。不过按照步骤获取就OK了。
以上是关于yii2.0邮件发送问题解决的主要内容,如果未能解决你的问题,请参考以下文章