ホームページ >バックエンド開発 >PHPチュートリアル >YII2 密码找回收不到服务器发来的邮件

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

WBOY
WBOYオリジナル
2016-06-06 20:28:511090ブラウズ

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

邮箱功能设置

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。