0
私はイントラネットで動作するシステムを持っており、actionCreate
で警告メールを送信するにはどうすればいいですか?メールを送信actionCreate
私は以下のようにしましたが、電子メールは正しく送信されましたが、インターネットがオフラインの場合、不公平なエラーメッセージが表示されます。
public function actionCreate()
{
$model = new Todolist();
if ($model->load(Yii::$app->request->post())) {
$file = $model->uploadImage();
if ($model->save()) {
if ($file !== false) {
$idfolder = Yii::$app->user->identity->id;
if(!is_dir(\Yii::$app->getModule('task')->params['taskAttachment'])){
mkdir(\Yii::$app->getModule('task')->params['taskAttachment'], 0777, true);
}
$path = $model->getImageFile();
$file->saveAs($path);
}
Yii::$app->session->setFlash("task-success", "Atividade incluída com sucesso!");
\Yii::$app->mailer->compose('@app/mail/task')
->setFrom('[email protected]')
->setTo($model->responsible->email)
->setSubject(Yii::$app->params['appname'].' - '.\Yii::$app->getModule('task')->params['taskModuleName']. ' - Nova Tarefa : #'. $model->id)
->send();
return $this->redirect(['index']);
} else {
// error in saving model
}
}
return $this->render('create', [
'model' => $model,
]);
}
右を経由して送信するメールキューを使用します(メールがsendedではなかった場合、モデルを保存していない)、これを試してみてください。 モデルを保存することが優先され、電子メールがトリガーされます。 私はキューメールを使用しようとします。 – gugoan
私はイベントのメカニズムを使用することをお勧めします$ model-> triiger( 'SEND_MAIL_EVENT、new Event); – zakrzu
イベントの仕組みはどのように機能しますか? – gugoan