Laravel 5.3 通知与可邮寄

Posted

技术标签:

【中文标题】Laravel 5.3 通知与可邮寄【英文标题】:Laravel 5.3 Notification Vs Mailable 【发布时间】:2017-04-02 17:03:09 【问题描述】:

我有点困惑是使用 Laravel 的 Notification 还是 Mailable 类。据我了解,Mailables 仅用于发送电子邮件,而 Notifications 可用于发送电子邮件和短信。在我的应用程序中,我暂时没有发送短信通知的计划,所以我很困惑在这种情况下是否应该只使用 Mailable 类。我的问题是:

    如果我只发送电子邮件通知,是吗? 对我来说使用 Mailables 而不是 Notifications 更好吗?

    如果每封邮件都有不同的 html 布局,那么 Mailable 会是 更好的选择?

    即使所有电子邮件本质上都是通知电子邮件,它是否仍然使 使用 Mailables 而不是 Notifications 发送它们有意义吗?

谁能告诉我这两者之间的主要区别以及我们应该如何决定在 Laravel 5.3 中发送电子邮件时选择哪种方法。

【问题讨论】:

【参考方案1】:

虽然它不在文档中,但从 Laravel 5.3.7 开始,除了通知 MailMessage 对象之外,通知 mail 通道还可以与 Mailable 对象一起使用。

因此,您可以将所有电子邮件创建为 Mailable 对象,如果您决定通过通知发送它们,您只需让您的 toMail() 方法返回您已经创建的 Mailable 对象。

【讨论】:

那太好了。如果需要,这还将在将来的日期从 Mailable 转换为 Notification,而不是重写这些类。 这里要记住的一件事是,您还必须明确传递 to 地址,因为它不会像 MailMessage 那样自动将其从通知中拉出/跨度> 【参考方案2】:

是的,当然,如果每个电子邮件布局不同,您应该使用 Mailable

Mailable 是发送电子邮件的新方式,比以前更容易。比通知更可定制。

如果您想在不同渠道(邮件、短信、Slack 等)中发送预定义布局,通知非常好

您可以自定义通知布局,但通过通知设置 1 个布局会变得更加困难......这不是通知的用例

【讨论】:

我还想提一下,通知可以自动存储在数据库中。如果您希望保留电子邮件日志并且不想编写额外的逻辑,那么通知会派上用场。但是,将电子邮件存储在数据库中并不难。 谢谢@Juliatzin 这澄清了我的困境。一旦允许,我会在 5 分钟内接受你的回答。 确实如此,而且你可以创建自己的驱动来制作自己的通知,所以它是相当强大的。仅取决于您的用例 @Juliatzin 已经很晚了,但你能解释一下答案中的最后一句话吗?

以上是关于Laravel 5.3 通知与可邮寄的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Redis 和 Laravel 5.3 在私有频道上广播通知

Laravel 5.3 - 避免在 phpunit 测试中发送松弛通知

Laravel 5.3 - 用户收藏的单一通知(关注者)

在布局中的 Laravel 5.3 视图中包含 PHP 变量

Lumen 5.4 与 Laravel 可邮寄

Laravel:Textarea 可邮寄删除新段落