email - 使用 Laravel Mail 外观从多个 Mailgun 域发送

标签 email laravel dns queue mailgun

我使用 Laravel 4 的 Mail::queue() 来发送电子邮件,使用内置的 Mailgun 驱动程序。问题是我希望能够从多个 Mailgun 域发送电子邮件,但必须在 app/config/services.php 中设置域。由于我使用的是 Mail::queue(),因此我看不到如何动态设置该配置变量。

有什么办法可以实现我的要求吗?理想情况下,我希望在调用 Mail::queue() 时能够传入域(Mailgun api key 对于我想要发送的所有域都是相同的)。

最佳答案

我使用来添加动态配置。我不记得这是否可以在 Laravel 4 中完成,但可以在 5 上完成。

在服务提供者(AppServiceProvider)中注册宏

public function boot()
{
    Mail::macro('setConfig', function (string $key, string $domain) {

        $transport = $this->getSwiftMailer()->getTransport();
        $transport->setKey($key);
        $transport->setDomain($domain);

        return $this;
    });
}

然后我可以这样使用:

\Mail::setConfig($mailgunKey, $mailgunDomain)->to(...)->send(...)

就你的情况

\Mail::setConfig($mailgunKey, $mailgunDomain)->to(...)->queue(...)

关于email - 使用 Laravel Mail 外观从多个 Mailgun 域发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28731061/

相关文章:

html - 将自动生成的链接更改为带有发送给客户的电子邮件中的文本的按钮

php - 如何处理 Laravel 的 SMTP 驱动程序中的自签名 TLS 证书?

javascript - 如何使用 mailto : link? 发送电子邮件正文中的 JSON 对象数组

php - 在 Laravel 配置文件中使用命名路由

php - 在 Laravel 中的大型表上创建模型时创建唯一的跟踪代码

linux - 如果/etc/hosts 中未指定 IP,则通过 ssh 连接服务器的时间过长

perl - 是否有一个 Perl 模块来监控电子邮件队列?

laravel - 使用 Laravel-Websockets 向特定用户发送消息(一对一聊天)

java - 从 URL 获取没有子域的域

azure - 客户将其域名指向我们的 IP - 问题和系统生命周期