Bam*_*mme 2 php email smtp laravel
如何在我的 Laravel 应用程序中使用多个来自电子邮件的配置?
问题:在 .env 文件中,我们只能配置一封电子邮件的 smtp 详细信息。如何使用多个电子邮件帐户并将其凭据用于不同的场景。
我的 .env smtp 设置
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=xxxxxxxxx
MAIL_PASSWORD=xxxxxxxxxxxxx
MAIL_FROM_ADDRESS=sales@mywebsite.com
MAIL_FROM_NAME="Sales"
MAIL_ENCRYPTION=TLS
Run Code Online (Sandbox Code Playgroud)
下面发送电子邮件,但从 .env 文件中获取配置。
\Mail::to($firmAdminEmail->admin_email)->send(new AdminLeadAccept($acceptLink));
Run Code Online (Sandbox Code Playgroud)
mat*_*iti 11
如果这没有帮助,那么我认为你应该对.env每个配置进行如下配置:
MAIL_SALES_USERNAME,MAIL_SALES_PASSWORDMAIL_SUPPORT_USERNAME,MAIL_SUPPORT_PASSWORD然后在配置中你有这个mailers,所以你可以像这样添加新的“发件人” :
'sales' => [
'transport' => 'smtp',
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
'port' => env('MAIL_PORT', 587),
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_SALES_USERNAME'),
'password' => env('MAIL_SALES_PASSWORD'),
'timeout' => null,
'auth_mode' => null,
],
'support' => [
'transport' => 'smtp',
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
'port' => env('MAIL_PORT', 587),
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_SUPPORT_USERNAME'),
'password' => env('MAIL_SUPPORT_PASSWORD'),
'timeout' => null,
'auth_mode' => null,
],
Run Code Online (Sandbox Code Playgroud)
因此,在发送电子邮件之前,您只需选择/更改要用作发件人的人:
Mail::mailer('support')
->to($request->user())
->send(new SupportTicketGenerated($ticket));
// Or
Mail::mailer('sales')
->to($request->user())
->send(new OrderShipped($order));
Run Code Online (Sandbox Code Playgroud)
阅读有关 的文档mailer的这一部分。