使用 alwaysTo() 避免意外发送电子邮件
发布于 作者 Chris Fidao
刚了解了一个我之前不知道的 Laravel 功能
— Chris Fidao (@fideloper) 2022 年 1 月 20 日
告诉 Laravel 始终发送到特定地址! pic.twitter.com/sJJouTCzPn
在 Laravel 中有一个(目前)未记录的方法可以防止它将电子邮件发送到任何旧地址。
为什么这很有用?好吧,我们中有些人并不完美 😅。有时我们会意外地从我们的 预发布环境甚至测试中向真实客户发送数千封电子邮件。
有很多方法可以避免这种情况,但 Laravel 已经提供了一个开箱即用的简单方法!
# File app/Providers/AppServiceProvider.php use Illuminate\Support\Facades\Mail;use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider{ // Stuff omitted public function boot() { f (! app()->environment('production')) { } }}
alwaysTo 发生了什么?
方便的 alwaysTo()
方法将覆盖在电子邮件消息中的 to
、cc
和 bcc
中添加的所有地址。
这在 Illuminate\Mail\Mailer
类中完成 (见此)。注意代码注释
// If a global "to" address has been set, we will set that address on the mail// message. This is primarily useful during local development in which each// message should be delivered into a single mail address for inspection.if (isset($this->to['address'])) { $this->setGlobalToAndRemoveCcAndBcc($message);}
因此,在我们上面的代码中,我们告诉 Laravel,如果我们不在生产环境中,则只将电子邮件发送到 [email protected]
!