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 测试中发送松弛通知