Laravel邮件错误页面自定义:替换Swift_TransportException报错页
自定义Laravel邮件发送错误页面的实现方案
要替换Laravel默认的邮件发送错误页面,我们可以通过捕获特定异常并返回自定义视图的方式来实现,具体操作如下:
第一步:修改异常处理器
打开app/Exceptions/Handler.php文件,首先引入邮件异常类:use Swift_TransportException;然后在
render方法中添加异常捕获逻辑,当触发Swift_TransportException时返回自定义视图:public function render($request, Throwable $exception) { // 捕获邮件发送相关异常 if ($exception instanceof Swift_TransportException) { // 获取核心错误信息 $errorContent = $exception->getMessage(); // 返回自定义错误视图,传递错误内容 return response()->view('errors.mail', [ 'error' => $errorContent ], 500); } return parent::render($request, $exception); }第二步:创建自定义错误视图
在resources/views/errors目录下新建mail.blade.php文件,写入包含自定义页眉、页脚的页面结构:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>邮件发送错误</title> <style> .custom-header { padding: 1.5rem; background-color: #f0f4f8; border-bottom: 1px solid #e2e8f0; } .error-container { max-width: 700px; margin: 2rem auto; padding: 0 1rem; } .error-content { padding: 1.5rem; background-color: #fee2e2; border-radius: 6px; color: #dc2626; } .custom-footer { margin-top: 3rem; padding: 1.5rem; background-color: #f0f4f8; border-top: 1px solid #e2e8f0; text-align: center; } </style> </head> <body> <div class="custom-header"> <h1>My header</h1> </div> <div class="error-container"> <div class="error-content"> {{ $error }} </div> </div> <div class="custom-footer"> <p>My footer</p> </div> </body> </html>这里的
{{ $error }}会自动渲染你需要的核心错误信息:(1/1) Swift_TransportException Expected response code 250 but got code "535", with message "535-5.7.8 Username and Password not accepted. Learn more at 535 5.7.8 https://support.google.com/mail/?p=BadCredentials u13sm7041792wre.52 - gsmtp "第三步:测试验证
当邮件发送出现凭证错误等Swift_TransportException异常时,系统会自动跳转到这个自定义页面,展示你设置的页眉、页脚和核心错误内容,完全替换默认的报错页面。
内容的提问来源于stack exchange,提问作者paranoid
相关产品推荐
相关产品推荐

