【问题标题】:Get message-id with Laravel Mailable使用 Laravel Mailable 获取 message-id
【发布时间】:2017-07-01 16:05:42
【问题描述】:

有没有办法在 Laravel Mailables 中获取要发送电子邮件的 message-id?

我目前得到这样的 id,它工作得很好,但由于它不支持降价和东西,我更愿意解决这个问题:

Mail::send('mail.contact.confirmation', $contactData, function (Message $message) use ($mailTo, $subject, &$headers)
{
    $headers['message-id'] = $message->getSwiftMessage()->getId();
    $message->to($mailTo)->subject($subject);
});

感谢您的建议。

【问题讨论】:

    标签: php laravel email laravel-5.4


    【解决方案1】:

    我只需要自己解决这个问题,所以对我的回答持保留态度(尽管它对我有用)。

    在 Laravel Mailable 的“build()”函数中,你可以:

    $this->withSwiftMessage(function ($swiftmessage) {
       echo $swiftmessage->getId();
    });
    

    希望这能让你开始。我的用例是编辑 ID,所以我使用了:

    $this->withSwiftMessage(function ($swiftmessage) use ($newId) {
      $swiftmessage->setId($newId);
      return $swiftmessage;
    });
    

    【讨论】:

    • 看起来不错,抱歉回复晚了。这有点像我以前做的一样骇人听闻的事情。但如果它有效,它并不愚蠢:)
    • 这仍然适用于 Laravel 5.6 吗?我也试过了,但就我而言,它总是空的。我的命令只有一点点不同,但这不重要,对吧? Mail::to(Auth::user()->email)->queue(new Order($order_id));
    • 我可以确认:这个解决方案仍然适用于 Laravel 5.6。
    • 我目前正在做同样的事情,但我的 messageId 没有被提取。我在某处读到设置或替换 messageID 取决于使用的邮件服务器。解决这个问题的最佳方法是什么?设置消息 ID(就像您所做的那样)可以解决我的问题吗?我还尝试收听 MessageSent 事件但没有结果。
    猜你喜欢
    • 1970-01-01
    • 2018-10-19
    • 2018-12-13
    • 2011-12-19
    • 1970-01-01
    • 2016-07-31
    • 1970-01-01
    • 2014-08-13
    • 2023-04-05
    相关资源
    最近更新 更多