這篇文章主要介紹yii2發送郵件無法接收怎么辦,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
yii2發送郵件無法接收的解決辦法:首先找到并打開配置文件代碼;然后將代碼“'useFileTransport' => true”改成“'useFileTransport' => false,”;最后保存修改即可。
解決Yii2郵件發送問題(結果返回成功,但接收不到郵件)
剛剛用了一下yii郵件發送功能,雖然結果返回成功,但接收不到郵件。配置文件代碼如下:
'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('郵件發送配置')
->setTextBody($body) //發布純文字文本
->send();
if($mail){
return [
'name' => [
'fromName' => $fromName,
'fromBady' => $fromBady,
'toName' => $toName,
'body' => $body,
],
'message' => '發生到['.$toName.']的郵件成功!',
'code' => 0,
'status' => 200,
];
}else{
return [
'name' => 'Error',
'message' => '發生到'.$toName.'的郵件失??!',
'code' => 0,
'status' => 402,
];
}
}但是你會發現數據返回是成功的但是你卻沒收到郵件
這是你應該把
'useFileTransport' => true 改成 'useFileTransport' => false,
并且你的郵箱密碼是qq授權碼(到你郵箱中的設置->賬戶 查看)
通過以上努力你會成功接收郵件!
以上是“yii2發送郵件無法接收怎么辦”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。