Как отправить уведомление на основе учетных данных электронной почты вошедшего в систему пользователя

Я использую Laravel 8 для приложения HRMS. У него несколько компаний, и каждый пользователь принадлежит компании. Изначально я использовал его для одной компании. Но теперь это для нескольких компаний с единой базой данных. В пользовательской таблице есть company_id.

Модели

class Company extends Model
{
    protected $table = 'companies';

    protected $fillable = [
        'id',
        'organization_code',
        'organization_name'
    ];
}

class User extends Authenticatable
{
    use Notifiable;

    protected $fillable = [
        'name',
        'first_name',
        'last_name',
        'company_id',
        'email',
    ];
}

config / mail.php

 return [
    'driver' => env('MAIL_DRIVER', 'smtp'),
    'host' => env('MAIL_HOST', 'smtp.office365.com'),
    'port' => env('MAIL_PORT', 587),

    'from' => [
        'address' => env('MAIL_FROM_ADDRESS', '[email protected]'),
        'name' => env('MAIL_FROM_NAME', 'COMPANY1'),
    ],

    'encryption' => env('MAIL_ENCRYPTION', 'tls'),
    'username' => env('MAIL_USERNAME','[email protected]'),
    'password' => env('MAIL_PASSWORD','company1'),    
    'sendmail' => '/usr/sbin/sendmail -bs',

    'log_channel' => env('MAIL_LOG_CHANNEL'),
];

Вышеупомянутые учетные данные для почты предназначены для компании company1, но теперь у меня есть company1, comany2, company3, ... и так далее. У каждой компании будут свои учетные данные для почты.

$details = [
    'subject' => '',
    'greeting' => '',
    'body' => ' ',
    'line1' => '',
    'thanks' => 'Thank you!',
    'user_email' => $userEmail,
    'actionText' => '',
];

Notification::route('mail', $details['user_email'])
    ->notify(new \App\Notifications\UserApprove($details))

Как отправить уведомление на основе учетных данных электронной почты компании вошедшего в систему пользователя?


person user11352561    schedule 15.01.2021    source источник
comment
К сожалению, Laravel по умолчанию не поддерживает несколько почтовых драйверов (как это происходит с подключениями к базе данных). Вам придется вручную создать новый экземпляр Swiftmail и использовать его.   -  person Autista_z    schedule 15.01.2021
comment
@Autista_z - Как вручную создать новый экземпляр Swiftmail?   -  person user11352561    schedule 15.01.2021
comment
stackoverflow.com/questions/26546824/   -  person Autista_z    schedule 16.01.2021