如何更改Laravel中邮件的header信息?
How to change header information of mail in Laravel?
我正在使用 Laravel 5.1
创建一个简单的联系我们表单
public function sendMessage(){
$data = [
'name' => Input::get('name'),
'email' => Input::get('email'),
'subject' => Input::get('subject'),
'body' => Input::get('body')
];
Mail::send('emails.contact',$data, function($message) use($data){
$message->from($data['email'], $data['name']);
$message->to('smartrahat@gmail.com','Mohammed');
$message->subject($data['subject']);
});
Session::flash('success_message','Mail sent successfully!');
return redirect('contact');
}
一切正常,但发件人电子邮件地址不是从联系页面获得的地址。电子邮件是从我在 .env
中配置的地址发送的
我想从他填写联系表格的发件人电子邮件地址收到电子邮件。或者,你可以说我要更改 header 信息(只有 from
,我可以更改其他信息)。
嗯Laravel 将通过给定的 smtp 服务器发送邮件。我猜 smtp 服务器(例如 google 这样做)不会让您将发件人地址更改为该帐户所属的另一个地址。
如果您想直接在您的电子邮件程序中回复此地址,您可以添加 $message->replyTo($data['email'], $data['name']);
。
Mail::send()
函数中的$message
变量是一个SwiftMailer消息实例。因此,您可以像 SwiftMailer documentation 显示的那样使用 headers。只需使用 $message->getSwiftMessage()
来获取和操作 headers.
此外,您完全可以更改 From
header,但是如果您将其更改为不同的域,您将不得不处理客户端中的网络钓鱼警告。您可以通过设置 DKIM 和 SPF 记录来解决该问题,并且您需要有权访问域的 DNS 设置才能执行此操作。
我正在使用 Laravel 5.1
创建一个简单的联系我们表单public function sendMessage(){
$data = [
'name' => Input::get('name'),
'email' => Input::get('email'),
'subject' => Input::get('subject'),
'body' => Input::get('body')
];
Mail::send('emails.contact',$data, function($message) use($data){
$message->from($data['email'], $data['name']);
$message->to('smartrahat@gmail.com','Mohammed');
$message->subject($data['subject']);
});
Session::flash('success_message','Mail sent successfully!');
return redirect('contact');
}
一切正常,但发件人电子邮件地址不是从联系页面获得的地址。电子邮件是从我在 .env
我想从他填写联系表格的发件人电子邮件地址收到电子邮件。或者,你可以说我要更改 header 信息(只有 from
,我可以更改其他信息)。
嗯Laravel 将通过给定的 smtp 服务器发送邮件。我猜 smtp 服务器(例如 google 这样做)不会让您将发件人地址更改为该帐户所属的另一个地址。
如果您想直接在您的电子邮件程序中回复此地址,您可以添加 $message->replyTo($data['email'], $data['name']);
。
Mail::send()
函数中的$message
变量是一个SwiftMailer消息实例。因此,您可以像 SwiftMailer documentation 显示的那样使用 headers。只需使用 $message->getSwiftMessage()
来获取和操作 headers.
此外,您完全可以更改 From
header,但是如果您将其更改为不同的域,您将不得不处理客户端中的网络钓鱼警告。您可以通过设置 DKIM 和 SPF 记录来解决该问题,并且您需要有权访问域的 DNS 设置才能执行此操作。