Home >Backend Development >PHP Tutorial >YII2 密码找回收不到服务器发来的邮件
//common-->config-->main.php下设置,代码:
<code> 'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'viewPath' => '@common/mail', 'useFileTransport' => FALSE, 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => 'smtp.exmail.qq.com', 'username' => 'serviceEmail', 'password' => 'emailPassword', 'port' => '465', 'encryption' => 'ssl', ], ], </code>
//PasswordResetRequestForm里面的代码:
<code> public function sendEmail() { /* @var $user User */ $user = User::findOne([ 'status' => User::STATUS_ACTIVE, 'email' => $this->email, ]); if ($user) { if (!User::isPasswordResetTokenValid($user->password_reset_token)) { $user->generatePasswordResetToken(); } if ($user->save()) { return \Yii::$app->mailer->compose(['html' => 'passwordResetToken-html', 'text' => 'passwordResetToken-text'], ['user' => $user]) ->setFrom([\Yii::$app->params['supportEmail'] => \Yii::$app->name . ' robot']) ->setTo($this->email) ->setSubject('Password reset for ' . \Yii::$app->name) ->send(); } } return false; } </code>
//但是通过以下方法可以接收到发送过来的邮件
<code>public function actionMailws() { if(\Yii::$app->mailer->compose() ->setFrom('serviceEmail') ->setTo('testEmail') ->setSubject('hahahahahaha') ->send()){ return TRUE; }else{ return FALSE; } } 有大神解释一下或者教一下怎么邮件密码找回吗?</code>
//common-->config-->main.php下设置,代码:
<code> 'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'viewPath' => '@common/mail', 'useFileTransport' => FALSE, 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => 'smtp.exmail.qq.com', 'username' => 'serviceEmail', 'password' => 'emailPassword', 'port' => '465', 'encryption' => 'ssl', ], ], </code>
//PasswordResetRequestForm里面的代码:
<code> public function sendEmail() { /* @var $user User */ $user = User::findOne([ 'status' => User::STATUS_ACTIVE, 'email' => $this->email, ]); if ($user) { if (!User::isPasswordResetTokenValid($user->password_reset_token)) { $user->generatePasswordResetToken(); } if ($user->save()) { return \Yii::$app->mailer->compose(['html' => 'passwordResetToken-html', 'text' => 'passwordResetToken-text'], ['user' => $user]) ->setFrom([\Yii::$app->params['supportEmail'] => \Yii::$app->name . ' robot']) ->setTo($this->email) ->setSubject('Password reset for ' . \Yii::$app->name) ->send(); } } return false; } </code>
//但是通过以下方法可以接收到发送过来的邮件
<code>public function actionMailws() { if(\Yii::$app->mailer->compose() ->setFrom('serviceEmail') ->setTo('testEmail') ->setSubject('hahahahahaha') ->send()){ return TRUE; }else{ return FALSE; } } 有大神解释一下或者教一下怎么邮件密码找回吗?</code>
你可以看下这个教程,我用他上面说的成功了,163不需要什么设置,其他邮箱好像要开启smtp等
邮箱功能设置