如何在laravel中发送带有动态发件人的电子邮件?

时间:2015-11-18 20:04:46

标签: email laravel-5.1

我正在Laravel创建一个简单的联系我们。

我使用我的Gmail帐户设置了.env。我可以用我的电子邮件地址发送来自Laravel的电子邮件,没问题。

但是,我想发送邮件表格的发件人地址发送电子邮件,联系我们表格。

这是我在控制器中的代码:

public function sendMessage(Request $request)
{
    $this->validate($request,[
        'email'=>'required|email',
        'subject'=>'required',
        'body'=>'required|max:150'
    ]);
    $body = $request['body'];
    Mail::send('emails.support',['body' => $body], function($message){
        $email = Input::get('email');
        $subject = Input::get('subject');
        $message->sender($email);
        $message->to('smartrahat@gmail.com','Mohammed');
        $message->subject($subject);
    });
    return redirect('contactUs');
}

但是,我收到的是电子邮件地址表格,请联系我们表格,电子邮件总是通过我在.env配置的电子邮件帐户发送

3 个答案:

答案 0 :(得分:1)

我会做一些与众不同的事情。我猜level date CountOfRecords 1 2014-06-18 2 2 2014-06-18 1 3 2014-06-18 0 1 2014-11-06 1 2 2014-11-06 0 3 2014-11-06 0 1 2014-11-11 0 2 2014-11-11 1 3 2014-11-11 0 1 2014-11-13 0 2 2014-11-13 0 3 2014-11-13 1 是电子邮件文本?你应该将它放在一个数组中,并将其作为参数添加到Mail :: send中(或直接将$body作为参数添加。

另外,在Mail关闭的内部,我认为把逻辑放在那里非常好(比如$ email = Input :: get)。如果你问我,它看起来不对。

没有测试过这段代码,但这应该可行:

$request->all()

因为您将$ data添加为'use',所以您可以在闭包内访问此数据。 $ data作为参数发送,可以在电子邮件刀片中使用。在此示例中,您可以访问以下数据:public function sendMessage(Request $request) { $this->validate($request,[ 'email' => 'required|email', 'subject' => 'required', 'body' => 'required|max:150' ]); $data = [ 'email' => $request->input('email'), 'subject' => $request->input('subject'), 'body' => $request->input('body') ]; Mail::send('emails.support', $data, function($message) use ($data) { $message->from($data['email']); $message->to('smartrahat@gmail.com','Mohammed'); $message->subject($data['subject']); }); return redirect('contactUs'); } $email$subject,在刀片中输出值。

但你也可以这样做:

$data

答案 1 :(得分:0)

foreach ($emails as $value1) 
{
    $to[]=implode(',',$value1['0']);
}
$subject=$request->input('sub');
$mailsend=Mail::send('email.subscribe',$mail_content,
function($message)use($to,$subject)
{
    $message->from('ganarone@ganar.io','Ganar');
    $message->to($to);
    $message->subject($subject);
});  

答案 2 :(得分:0)

public function reset_password(Request $request)
{
    $user=User::whereEmail($request->email)->first();
    if(count($user) == 1)
    {
        $data = array('name'=>"Virat Gandhi");
        $subject=$request->email;
        mail::send(['emails'=>'reset_set'],$data,
        function($message)use($subject)
        {
            $message->from('your@gmail.com','kumar');
            $message->to($subject);
            $message->subject($subject);
        });  
        echo "Basic Email Sent. Check your inbox.";
    }
}