YII2 密码找回收不到服务器发来的邮件
程序员文章站
2022-05-13 20:37:16
...
//common-->config-->main.php下设置,代码:
'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',
],
],
//PasswordResetRequestForm里面的代码:
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;
}
//但是通过以下方法可以接收到发送过来的邮件
public function actionMailws() {
if(\Yii::$app->mailer->compose()
->setFrom('serviceEmail')
->setTo('testEmail')
->setSubject('hahahahahaha')
->send()){
return TRUE;
}else{
return FALSE;
}
}
有大神解释一下或者教一下怎么邮件密码找回吗?
回复内容:
//common-->config-->main.php下设置,代码:
'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',
],
],
//PasswordResetRequestForm里面的代码:
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;
}
//但是通过以下方法可以接收到发送过来的邮件
public function actionMailws() {
if(\Yii::$app->mailer->compose()
->setFrom('serviceEmail')
->setTo('testEmail')
->setSubject('hahahahahaha')
->send()){
return TRUE;
}else{
return FALSE;
}
}
有大神解释一下或者教一下怎么邮件密码找回吗?
你可以看下这个教程,我用他上面说的成功了,163不需要什么设置,其他邮箱好像要开启smtp等
邮箱功能设置
上一篇: php实现微信支付之现金红包
下一篇: php 引用(&)用法