如果您想在 .env 中保存硬编码的电子邮件,您可以像这样将它们保留在那里:
MAIL_FROM_ADDRESS="email@gmail.com"
MAIL_FROM_ADDRESSES="email1@gmail.com,email2@gmail.com,email3@gmail.com"
在 config/mail.php 中添加一些属性,例如:
'from' => [
'addresses' => explode(',', env('MAIL_FROM_ADDRESSES')),
'address' => env('MAIL_FROM_ADDRESS'),
'name' => env('MAIL_FROM_NAME'),
],
刷新 Laravel 缓存。运行:
php artisan config:cache
像这样在您的应用中的任何位置使用它们:
config('mail.from.addresses')
就是这样。请注意, .env 实际上是用于存储字符串数据。 this 对你来说也可能很有趣。
更新:
如果你想根据你的应用逻辑从不同的电子邮件地址发送电子邮件,你可以这样做。
假设您有用户的“角色”表,并且每个用户都有一些特定的“别名”字段。由于我不知道您的应用程序的整个逻辑,您可以根据需要进行更改,但是解决问题的简单方法可以使用关联数组方法:
在 mail.php
中添加“别名”属性
'from' => [
'aliases' => [
// all the roles values (starting from 0)
'admin' => 0,
'moderator' => 1,
// ...
],
'addresses' => explode(',', env('MAIL_FROM_ADDRESSES')),
'address' => env('MAIL_FROM_ADDRESS'),
'name' => env('MAIL_FROM_NAME'),
],
同样,不要忘记清除缓存并像这样使用电子邮件发送:
// for example here the app will send email dynamically depending from auth user
// assume the $user is auth user (admin, moderator or something like that)
$alias_number = config('mail.from.aliases.' . $user->role->alias);
\Mail::from(config('mail.from.addresses')[$alias_number])
->to('some.email@gmail.com')
->send(new AdminLeadAccept($acceptLink));
您可以根据需要覆盖或更改。核心逻辑是你可以在 .env 中保留一些字符串数据并从那里动态地提取。