首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Laravel的Mailgun驱动程序,您如何(优雅地)在电子邮件中发送自定义数据和标签?

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

Stack Overflow用户
提问于 2016-03-07 23:58:32
回答 3查看 4.3K关注 0票数 17

所以我使用的是Laravel 5.1,并尝试与Mailgun集成。好吧,这很简单,但现在我正在尝试从我的应用程序中发送custom variables以及我的电子邮件。

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

我也考虑过使用Bogardo/Mailgun,但是我不得不用Mailgun::send()替换所有的Mail::send(),然后我就不能在本地发送电子邮件(基于环境的电子邮件驱动程序),然后应用程序就会“结婚”到邮件枪上。

以前有人这么做过吗?如果我说得不够清楚,请告诉我。

EN

回答 3

Stack Overflow用户

发布于 2018-09-26 21:01:40

Laravel 5.4+更新

正如您在offical docs中所看到的那样

Mailable基类的withSwiftMessage方法允许您注册一个回调,该回调将在发送消息之前通过原始SwiftMailer消息实例调用。这为您提供了在消息传递之前自定义消息的机会:

代码语言:javascript
复制
/**
 * Build the message.
 *
 * @return $this
 */
public function build()
{
    $this->view('emails.orders.shipped');

    $this->withSwiftMessage(function ($message) {
        $message->getHeaders()
                ->addTextHeader('Custom-Header', 'HeaderValue');
    });
}
票数 7
EN

Stack Overflow用户

发布于 2016-10-13 15:55:16

你可以在Laravel 5中这样做:

代码语言:javascript
复制
Mail::send(['text' => 'my_template'], $data, function ($message) {
  ..
  $message->getSwiftMessage()->getHeaders()->addTextHeader('X-Mailgun-Tag', 'my-tag');
});
票数 5
EN

Stack Overflow用户

发布于 2019-02-22 05:10:20

邮件枪驱动程序的Laravel实现不支持选项/参数。

下面是向本机驱动程序添加支持的要点:https://gist.github.com/j0um/27df29e165a1c1e0634a8dee2122db99

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35848266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档