我正在 Laravel 中创建一个简单的联系我们。
我设置了.env我的 Gmail 帐户。我可以用我的电子邮件地址从 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');
}
Run Code Online (Sandbox Code Playgroud)
虽然,我收到电子邮件地址表格联系我们表格,电子邮件总是从我配置的电子邮件帐户中发送 .env
我会做一些不同的事情。我猜$body是电子邮件文本?你应该把它放在一个数组中,并将它作为参数添加到 Mail::send 中(或直接$request->all()作为参数放入。
另外,在 Mail 的关闭内部,我不认为将逻辑放在那里很好(比如 $email=Input::get)。如果你问我,它看起来不正确。
没有测试这段代码,但这应该有效:
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');
}
Run Code Online (Sandbox Code Playgroud)
因为您将 $data 添加为 'use',您可以在闭包中访问此数据。$data 作为参数发送,可以在电子邮件刀片中使用。在这个例子中,你可以像这样访问数据:$email, $subject, $data, 在刀片中这些将输出值。
但你也可以这样做:
Mail::send('emails.support', $request->all(), function($message) use ($data)
| 归档时间: |
|
| 查看次数: |
10735 次 |
| 最近记录: |