英文:
Change MAIL_FROM_NAME value from laravel controller
问题
I want to sent 2 mails, but from name is different for one, while for second its the default in env file
I tried this:
Mail::send(
'register.mail',
['record' => $record],
function ($message) use ($record) {
$message->to('usama@gmail.com');
$message->subject('New Store Registration Request');
}
);
// Update the mail from name
Config::set('mail.from.name', 'Custom name');
Mail::send(
'register.welcomeMail',
['record' => $record],
function ($message) use ($record) {
$message->to($record['email']);
$message->subject('Store Registration');
// Update the mail from name back to "Portal"
Config::set('mail.from.name', 'Portal');
}
);
But this send mail with "Portal" as from name to both of these mails, am I doing it wrong and how can I fix this?
英文:
I want to sent 2 mails, but from name is different for one, while for second its the default in env file
I tried this:
Mail::send(
'register.mail',
['record' => $record],
function ($message) use ($record) {
$message->to('usama@gmail.com');
$message->subject('New Store Registration Request');
}
);
// Update the mail from name
Config::set('mail.from.name', 'Custom name');
Mail::send(
'register.welcomeMail',
['record' => $record],
function ($message) use ($record) {
$message->to($record['email']);
$message->subject('Store Registration');
// Update the mail from name back to "Portal"
Config::set('mail.from.name', 'Portal');
}
);
But this send mail with "Portal" as from name to both of these mails, am I doing it wrong and how can I fix this?
答案1
得分: 1
您可以在不使用`config`或更改`env`变量的情况下进行更改。
由于您使用的是回调而不是类,您可以这样做:
use Illuminate\Mail\Message;
Mail::send(
view: 'register.email',
data: ['record', $record],
callback: function (Message $message) {
$message->to('usama@gmail.com');
$message->from('from@email.com', '发件人姓名');
$message->subject('邮件主题');
}
);
`$message`是`Message`类的实例,您可以使用`from()`方法来编辑电子邮件的发件人地址。您可以像我所做的那样在回调中进行类型提示,以避免混淆。
您还可以深入了解`Mail::send()`的工作原理。
英文:
Well you can change it without using the config
or changing the env
variables
Since you are using the a callback instead of a class you can just do this :
use Illuminate\Mail\Message;
Mail::send(
view: 'register.email',
data: ['record', $record],
callback: function (Message $message) {
$message->to('usama@gmail.com');
$message->from('from@email.com', 'FromName');
$message->subject('Mail Subject');
}
);
The $message
is a instance of Message
class which where you can access the from()
method to edit where the email come from. You can type hint it in the callback like the one I did so that you will be confuse.
You can also dig deeper to the Mail::send()
to check how it works.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论