В моей модели пользователя мне нужно отправить электронное письмо после вставки новой записи. Я не могу дождаться высылки для отправки электронной почты, потому что это занимает слишком много времени. Поэтому я попытался использовать обработчик событий внутри самой моделиДобавить обработчик событий yii2 в самой модели
class User extends ActiveRecord {
public function events()
{
return [
User::EVENT_AFTER_INSERT => [$this, 'sendEmail']
];
}
public function sendEmail(){
Yii::$app->mailer->compose()
->setTo($this->email)
->setFrom(['mail address' => 'name'])
->setSubject('Verify your Email')
->setHtmlBody('<p>Please click on the <a href="'.Yii::$app->request->hostInfo.'/'.Yii::$app->params['frontEndUrl'].'#/verify-email/'
.$this->emailToken.
'">link</a> to verify your email</p>')
->send();
}
}
Но не получилось?
Это подтверждение по электронной почте, поэтому я не могу установить его как работу CRON. Есть ли другой способ отправки электронной почты, кроме быстрой почты, например, мандрилл? –
Конечно, вы можете отправить его как cron. Каково техническое/логическое соображение, почему вы не можете? Также, конечно, вы можете использовать мандрилл, который я использовал в прошлом. https://packagist.org/packages/nickcv/yii2-mandrill –
Можете ли вы привести мне пример установки задания cron, как я могу отправить электронную почту мгновенно при вводе новой записи пользователя. –