我正在使用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
我希望收到发件人电子邮件地址中的电子邮件,并填写联系表单。或者,您可以说我想更改标题信息(仅from
,我可以更改其他信息)。
答案 0 :(得分:1)
Laravel将通过给定的smtp服务器发送邮件。我想smtp服务器(例如谷歌这样做)不会让你将你的地址更改为该帐户所属的另一个地址。
如果您想直接在电子邮件程序中回复此地址,可以添加$message->replyTo($data['email'], $data['name']);
。
答案 1 :(得分:0)
$message
函数中的Mail::send()
变量是一个SwiftMailer消息实例。因此,您可以像SwiftMailer documentation节目一样处理标题。只需使用$message->getSwiftMessage()
来获取和操作标题。
此外,您绝对可以更改From
标头,但如果您将其更改为其他域,则必须在客户端处理网络钓鱼警告。您可以通过设置DKIM和SPF记录来解决这个问题,并且您需要有权访问域的DNS设置才能执行此操作。