解决Yii2邮件发送问题(结果返回成功,但接收不到邮件)
生活随笔
收集整理的這篇文章主要介紹了
解决Yii2邮件发送问题(结果返回成功,但接收不到邮件)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
剛剛用了一下yii郵件發(fā)送功能,雖然結(jié)果返回成功,但接收不到郵件。配置文件代碼如下:
'components' => ['db' => ['class' => 'yii\db\Connection','dsn' => 'mysql:host=localhost;dbname=yiidemo','username' => 'root','password' => 'root','charset' => 'utf8',],'mailer' => ['class' => 'yii\swiftmailer\Mailer','viewPath' => '@common/mail',// send all mails to a file by default. You have to set// 'useFileTransport' to false and configure a transport// for the mailer to send real emails.'useFileTransport' => true,'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => 'smtp.qq.com', 'username' => '********@qq.com', 'password' => '********','port' => '465', 'encryption' => 'ssl', ], ], ],控制器代碼:
public $modelClass = 'common\models\User';public function actions() {$actions = parent::actions();// 禁用"create" 操作后可用自己在控制器中寫的方法unset($actions['update'],$actions['create'],$actions['delete']);//$actions['index']['prepareDataProvider'] = [$this, 'prepareDataProvider'];return $actions; }public function actionCreate(){$request = Yii::$app->request;$params = $request->post();if($params){$fromName = $request->getBodyParam('fromName');$fromBady = $request->getBodyParam('fromBady');$toName = $request->getBodyParam('toName');$body = $request->getBodyParam('body');return $this->send($fromName,$fromBady,$toName,$body);}return false;}/** Email Send function* @param1 $fromName* @param1 $toName* @param1 $body* $return boo1ean* */public function send($fromName,$fromBady,$toName,$body = ''){$mail = \Yii::$app->mailer->compose()->setFrom([$fromName=>$fromBady])->setTo($toName)->setSubject('郵件發(fā)送配置')->setTextBody($body) //發(fā)布純文字文本->send();if($mail){return ['name' => ['fromName' => $fromName,'fromBady' => $fromBady,'toName' => $toName,'body' => $body,],'message' => '發(fā)生到['.$toName.']的郵件成功!','code' => 0,'status' => 200,];}else{return ['name' => 'Error','message' => '發(fā)生到'.$toName.'的郵件失敗!','code' => 0,'status' => 402,];} }但是你會發(fā)現(xiàn)數(shù)據(jù)返回是成功的但是你卻沒收到郵件
這是你應(yīng)該把
'useFileTransport' => true 改成 'useFileTransport' => false,
并且你的郵箱密碼是qq授權(quán)碼(到你郵箱中的設(shè)置->賬戶 查看)
通過以上努力你會成功接收郵件!
轉(zhuǎn)載于:https://www.cnblogs.com/zydsz/p/7053321.html
總結(jié)
以上是生活随笔為你收集整理的解决Yii2邮件发送问题(结果返回成功,但接收不到邮件)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: django之快速分页
- 下一篇: 如何利用python在一个wen'dan