如何在Laravel中更改邮件的标题信息?

时间:2015-11-24 15:03:24

标签: php email phpmailer laravel-5.1

我正在使用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,我可以更改其他信息)。

2 个答案:

答案 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设置才能执行此操作。