Heim > Artikel > PHP-Framework > Ausnahme beim Laravel-E-Mail-Push-System
Vorwort:
In der täglichen Entwicklung schreiben wir möglicherweise einige Fehler, aber das Projekt ist bereits online, wir Wir können nicht sofort Feedback von Kunden erhalten, daher ist das E-Mail-Fehlermeldesystem praktisch. Wir alle wissen, dass die Ausnahmebehandlung von Laravel über die Datei Handler.php erfolgen muss. Beginnen wir also hier. Bestimmen Sie, ob ein E-Mail muss in der Berichtsmethode gesendet werden:
public function report(Exception $exception) { //判断是否需要发送邮件 if (config('mail.mailException.report')) { $this->mailReport($exception, config('mail.mailException.toAccounts', [])); } parent::report($exception); }
2. Definieren Sie eine Methode zum Senden von E-Mails. Der Code lautet wie folgt:
/** * 邮件通知错误报告. * * @param $exception object 错误信息 * @param array $accounts array 收件人 */ public function mailReport($exception, $accounts = []) { if (!empty($accounts)) { try { $e = FlattenException::create($exception); $handler = new SymfonyExceptionHandler(); $html = $handler->getHtml($e); $mail = new Mail(); $mail::to($accounts)->send(new ExceptionReport($html)); } catch (Exception $ex) { } } }
3 E-Mail-Ausnahmeklasse, abgelegt im Mail-Ordner unter der App mit dem Namen: ExceptionReport.php, der Code lautet wie folgt:
<?php namespace App\Mail; use Illuminate\Bus\Queueable; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; class ExceptionReport extends Mailable { use Queueable, SerializesModels; /** * Create a new message instance. */ public $subject = '错误报告通知'; //邮件标题 private $exception; //通过构造函数实例化异常 public function __construct($exception) { $this->exception = $exception; } /** * build一个异常发送模板 * * @return $this */ public function build() { return $this->view('mail.exception')->with(['content' => $this->exception]); } }
4. Erstellen Sie eine neue Vorlagenansicht für das Senden von Ausnahmen, erstellen Sie unter Ansicht einen neuen Mail-Ordner , und erstellen Sie eine Datei mit dem Namen: Die Ansichtsvorlagendatei vonException.blade.php, der Code lautet wie folgt:
{!! $content !!}
5. Konfigurieren Sie die Person, die E-Mails senden muss, und den Schalter, ob E-Mails gesendet werden sollen config, fügen Sie am Ende den folgenden Code hinzu:
'mailException' => [ 'report' => env('MailExceptionReport', 0),//是否邮件通知错误报告 'toAccounts' => [ 'guifeng.liang@zun1.com', ] ] ,
6. Konfigurieren Sie die Postfach-Sendesysteminformationen in der .env-Datei. Das Format ist wie folgt:
//邮件驱动 MAIL_DRIVER=smtp //邮件服务器 MAIL_HOST=smtp.exmail.qq.com //邮件端口 MAIL_PORT=465 //邮箱用户名 MAIL_USERNAME=1231231@qq.com //邮箱密码 MAIL_PASSWORD=dasdasdadasdad //加密方式 MAIL_ENCRYPTION=ssl //发件人邮箱 MAIL_FROM_ADDRESS=1476982312@qq.com //发件人姓名 MAIL_FROM_NAME=犯二青年 //是否发送邮件,发送为1,不发送为0 MailExceptionReport=1
Das ist es Schreiben Sie einfach einige Fehlerberichte und fordern Sie dann die Schnittstelle an, um zu sehen, ob sie funktioniert. Das Ergebnis ist wie folgt:
Das obige ist der detaillierte Inhalt vonAusnahme beim Laravel-E-Mail-Push-System. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!