如何在Laravel中快速发送简易通知邮件至个人Zoho邮箱?
实现Laravel快速发送纯文本通知邮件的方法
当然可以实现,Laravel其实提供了非常简便的纯文本邮件发送方式,完全不需要创建Mailable类、视图或者额外控制器——用Mail门面的raw方法就能搞定,具体步骤如下:
第一步:配置邮件驱动
先在.env文件里配置好Zoho邮箱的SMTP参数(比sendmail更稳定可控):MAIL_MAILER=smtp MAIL_HOST=smtp.zoho.com MAIL_PORT=465 MAIL_USERNAME=你的发件邮箱@zoho.com MAIL_PASSWORD=你的Zoho邮箱密码(或应用专用密码) MAIL_ENCRYPTION=ssl MAIL_FROM_ADDRESS=你的发件邮箱@zoho.com MAIL_FROM_NAME="你的应用名称"如果想用sendmail,只需把
MAIL_MAILER设为sendmail,并确保服务器上sendmail服务正常运行即可。第二步:直接调用
Mail::raw()发送邮件
在你需要触发通知的代码位置(比如某个业务逻辑方法、模型事件监听、甚至日志回调里),直接写入以下代码:use Illuminate\Support\Facades\Mail; // 触发通知的逻辑处执行 Mail::raw('用户执行了罕见操作,请及时查看系统日志。操作时间:' . now()->toDateTimeString(), function ($message) { $message->to('你的收件邮箱@zoho.com') ->subject('系统罕见操作告警'); });这个方法完全不需要创建任何Mailable类或视图,直接传递纯文本内容即可。
测试验证
可以用Artisan Tinker快速测试邮件是否能正常发送:php artisan tinker然后在tinker里执行上面的
Mail::raw()代码段,检查Zoho邮箱是否收到邮件。进阶:绑定日志事件触发邮件
如果你想在特定日志级别(比如emergency或alert)触发邮件,可以监听日志事件:
在app/Providers/EventServiceProvider.php的listen数组里添加:'Illuminate\Log\Events\MessageLogged' => [ 'App\Listeners\SendLogNotification', ],然后创建
SendLogNotification监听器,在handle方法里判断日志级别,符合条件时调用Mail::raw()发送通知,这样就能自动关联日志触发邮件。
内容的提问来源于stack exchange,提问作者Hashim Aziz
相关产品推荐
相关产品推荐

