Home >Backend Development >PHP Tutorial >YII2 密码找回收不到服务器发来的邮件

YII2 密码找回收不到服务器发来的邮件

WBOY
WBOYOriginal
2016-06-06 20:28:511090browse

//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等

邮箱功能设置

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn