禁用Laravel电子邮件 - BeautyMail

时间:2017-07-19 00:58:59

标签: php laravel email

我正在寻找一种方法来禁止从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');
    });

如何禁用此功能,并确保系统不会继续从我的开发环境中向实际用户发送电子邮件?

3 个答案:

答案 0 :(得分:6)

你尝试过设置吗? 'driver' => env('MAIL_DRIVER', 'log'), 在你的config / mail.php或 MAIL_DRIVER = log 在.env

答案 1 :(得分:0)

Laravel 6.x的官方文档

https://laravel.com/docs/6.x/mail#mail-and-local-development

日志邮件驱动程序将发送所有内容,而不是发送电子邮件 电子邮件到您的log文件中进行检查。欲获得更多信息 有关根据环境配置应用程序的信息,请查看 configuration documentation

它还向您展示了如何免费使用Mailtrap,这很棒。

答案 2 :(得分:0)

您可以使用邮件本地服务器之类的

MailDev is a simple way to test your project's generated emails during development with an easy to use web interface that runs on your machine built on top of Node.js.

在环境中

MAIL_MAILER = smtp

MAIL_HOST =本地主机

MAIL_PORT = 1025