首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >yii2邮件未发送

yii2邮件未发送
EN

Stack Overflow用户
提问于 2018-07-29 00:03:48
回答 1查看 1.1K关注 0票数 0

对于发送邮件,绝对有两种相同的方法(注册新用户,发送信函以激活用户)。一个方法是在控制台中实现的,它的工作原理是:

代码语言:javascript
复制
public function actionSendMessage()
    {
        $user = new User();
        $this->readValue($user, 'username');
        $this->readValue($user, 'login');
        $this->readValue($user, 'email');
        $user->hash_password = Yii::$app->getSecurity()->generatePasswordHash($this->prompt('password'));
        $this->readValue($user, 'phone');
        $this->readValue($user, 'address');;
        $user->state = User::STATUS_WAIT;
        $user->generateAuthKey();
        $user->generateEmailConfirmToken();
        if ($user->save()) {
            Yii::$app->mailer->compose('@app/mail/emailConfirm', ['user' => $user])
                ->setFrom([Yii::$app->params['supportEmail'] => Yii::$app->name])
                ->setTo($user->email)
                ->setSubject('Email confirmation for ' . Yii::$app->name)
                ->send();
        }
    }

第二个必须在站点上注册时发送一封信,但是遗憾的是,信没有来(no errors):

代码语言:javascript
复制
public function sign()
    {

        $user = new User();
        $user->username = $this->username;
        $user->login = $this->login;
        $user->email = $this->email;
        $user->hash_password = yii::$app->security->generatePasswordHash($this->password);
        $user->phone = $this->phone;
        $user->address = $this->address;
        $user->state = User::STATUS_WAIT;
        $user->generateAuthKey();
        $user->generateEmailConfirmToken();
        if ($user->save()) {
            Yii::$app->mailer->compose('@app/mail/emailConfirm', ['user' => $user])
                ->setFrom([Yii::$app->params['supportEmail'] => Yii::$app->name])
                ->setTo($user->email)
                ->setSubject('Email confirmation for ' . Yii::$app->name)
                ->send();
        }

    }

在什么情况下会出现错误?$user->save() 是工作,用于这两种操作。

EN

回答 1

Stack Overflow用户

发布于 2018-07-29 03:08:47

必须将web.php中的服务器设置更改为

代码语言:javascript
复制
transport' => [
                'class' => 'Swift_SmtpTransport',
                'host' => 'smtp.gmail.com',
                'username' => '****',
                'password' => '****',
                'port' => '465',
                'encryption' => 'ssl',
                ],

信件形成,但没有发送。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51576177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档