每个通知作业的Laravel 8自定义smtp详细信息



我目前正在开发一个Laravel应用程序,不同的用户可以注册向用户发送电子邮件。

的例子:公司A有一个帐户,并在数据库中存储SMTP详细信息。公司B也有一个帐户,并在数据库中存储SMTP详细信息。

每个公司都有自己的客户数据集(尤其是电子邮件)

我使用Laravel的通知环境来发送电子邮件。

如果公司A现在想要向所有客户发送通知,我不想使用.env文件的SMTP详细信息。B公司也应该发送他们自己的数据。

以下是"工作流程"中的文件概述:

AnnouncementController.php:

(...)
dispatch(new SendNewAnnouncementNotificationJob($announcement));
(...)

SendNewAnnouncementNotificationJob.php

(..)
Notification::route('mail', $subscriber->email)
->notify((new NewAnnouncement($announcement)));
(..)

NewAnnouncement.php

(...)

use IlluminateContractsQueueShouldQueue;
(...)

class NewAnnouncement extends Notification implements ShouldQueue
{

(...)
use Queueable;
(...)
public function toMail($notifiable)
{

return (new MailMessage)
->from($this->announcement['sender_name'])
->subject('New Announcement at '.$this-> announcement['pagename'].'')
->line($announcement['text'])
->line('Thank you for using our application!');
}
(..)

我现在可以在什么时候存储单独的SMTP详细信息,特别是考虑到队列函数?

您必须在config/mail.php中定义另外两个邮件。

可以通过它们的名称来切换;如。Mail::mailer('smtp-company01').

配置是硬编码的,但是可以查询邮件的名称。

相关内容

  • 没有找到相关文章

最新更新