我正在寻找一种方法来禁止从Laravel内部发送所有电子邮件。我正在使用当地的网站开发副本,它一直在向实际用户发送电子邮件,这是测试期间我想要的最后一件事。
我做了什么:
我进入了config / mail.php并添加了以下行:
'pretend' => true,
此外,.env文件中有一些与Mailgun相关的配置(一个域名和秘密)我已删除,因此不应该连接到Mailgun。
此后,系统会在测试期间继续发送电子邮件。我的理解是将'假装'设置为true应足以将所有发送的电子邮件路由到日志文件。
值得注意的是,系统正在使用BeautyMail,据我所知,这只是一个电子邮件模板系统。但是,它看起来像是使用BeautyMail send()函数发送的电子邮件:
$beautymail = app()->make(\Snowfire\Beautymail\Beautymail::class);
$beautymail->send('emails.templates.testemail', compact('url'), function ($message) use ($email) {
$message->from(Mailer::$sender)->to($email)->subject('Test email');
});
如何禁用此功能,并确保系统不会继续从我的开发环境中向实际用户发送电子邮件?
答案 0 :(得分:6)
'driver' => env('MAIL_DRIVER', 'log'),
在你的config / mail.php或
MAIL_DRIVER = log
在.env
答案 1 :(得分:0)
https://laravel.com/docs/6.x/mail#mail-and-local-development
日志邮件驱动程序将发送所有内容,而不是发送电子邮件 电子邮件到您的
log
文件中进行检查。欲获得更多信息 有关根据环境配置应用程序的信息,请查看 configuration documentation。
它还向您展示了如何免费使用Mailtrap,这很棒。
答案 2 :(得分:0)
您可以使用邮件本地服务器之类的
在环境中
MAIL_MAILER = smtp
MAIL_HOST =本地主机
MAIL_PORT = 1025