使用 Laravel 的 Mailgun 驱动程序,如何(优雅地)通过电子邮件发送自定义数据和标签?

2023-12-29

所以我正在使用 Laravel 5.1 并尝试与 Mailgun 集成。嗯,这很简单,但现在我正在尝试发送自定义变量 https://documentation.mailgun.com/user_manual.html#attaching-data-to-messages来自我的申请以及我的电子邮件。

实际上,我正在将我们的应用程序从 Mandrill 切换过来,因为它们的“新方向”等等。有了它们,我可以通过电子邮件标头提供变量和标签,但使用 Mailgun,这只在您通过 SMTP 发送时才有效。在 Laravel 中,Mail::send()使用 API 调用,所以理论上我会在其中添加元数据"v:my-custom-data" => "{"this_id": 123}",但我想避免像这样改变核心类。

我也考虑过使用博加多/邮件枪 https://github.com/Bogardo/Mailgun,但随后我必须更换所有Mail::send()s with Mailgun::send(),然后我无法在本地发送电子邮件(基于环境的电子邮件驱动程序),然后该应用程序将“嫁给”Mailgun。

以前有人这样做过吗?如果我在这里不清楚,请告诉我。


我解决了我自己的问题。我错了,YOU CAN通过 SMTP 方法添加自定义变量:

// Send email with custom variables and tags in Laravel
Mail::send('emails.blank',
    ['html' => 'This is a test of Mailgun. <strong>How did it work out?</strong>'],
    function($message) {
        $message->to('[email protected] /cdn-cgi/l/email-protection');
        $message->subject('Mailgun API Test');

        $headers = $message->getHeaders();
        $headers->addTextHeader('X-Mailgun-Variables', '{"msg_id": "666", "my_campaign_id": 1313}');
        $headers->addTextHeader('X-Mailgun-Tag', 'test-tag');
    });

我的测试不够充分。很高兴知道,但我认为这是一个未记录的功能,所以我建议谨慎使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Laravel 的 Mailgun 驱动程序,如何(优雅地)通过电子邮件发送自定义数据和标签? 的相关文章

随机推荐