我使用Laravel发送电子邮件。
我尝试发送带有消息的电子邮件并保存在数据库中。
但这种情况发生了:
如何在电子邮件的视图中显示消息?
这是我发送电子邮件并将记录保存在数据库中的功能:
public function SendEmailGift(AudiobookSendRequest $request, $id) {
$email = $request->addressee;
$message = $request->message;
if (Auth::user()) {
$audioGift = AudioBook::findOrFail($id);
$userCheck = Auth::user()->$id;
$send = AudiobookSend::where(['user_id' => $userCheck, 'audiobooks_id' => $id])->first();
if(empty($send->user_id)) {
$user_id = Auth::user()->id;
$audiobooks_id = $id;
$send = new AudiobookSend;
$send->user_id = $user_id;
$send->audiobooks_id = $audiobooks_id;
$send->name = $request->name;
$send->addressee = $request->addressee;
$send->message = $request->message;
$send->save();
}
Mail::send('emails.send',
array(
'name' => $request->get('name'),
'addressee' => $request->get('addressee'),
'message' => $request->get('message'),
'location' => $id
), function($message) use ($request)
{
$message->from('no-reply@bdc.com.co');
$message->to($request->addressee, $request->name)->subject('Te han regalado un Audiolibro.');
});
return back()->with('info', 'Se ha enviado el regalo exitosamente');
} else {
return redirect()->route('login')->with('validate', 'Por favor inicia sesión para regalar este audiolibro');
}
}
这是邮件的视图:
<h1 class="page-header">Biblioteca Digital CONFA.</h1>
</br>
<p class="text-justify font-bold">
{{-- $message -> Debe de mostrar el mensaje, tira error, htmlspecialchars() parece venir vacio desde la función. --}}
{{-- <strong>{!! $message !!}</strong> --}}
<strong>Mensaje</strong>
</p>
Para ver el audiolibro, presiona el siguiente boton.
<a href="{{ route('audiobooks.show', $location) }}" class="btn btn-outline-warning">Presioname</a>
除了在电子邮件中显示消息外,一切正常。 请帮帮我=(
答案 0 :(得分:0)
您需要在一个变量中呈现视图,然后需要设置消息正文。 例如:
$view = view('yourfilename')->with('message',$message)->render();
Mail::send('emails.send', array( 'name' => $request->get('name'),
'addressee' => $request->get('addressee'),
'message' => $request->get('message'),
'location' => $id
), function($message) use ($request, $view)
{
$message->from('no-reply@bdc.com.co');
$message->to($request->addressee, $request->name)
->subject('Te han regalado un Audiolibro.')
->setBody($view,'text/html');
});
return back()->with('info', 'Se ha enviado el regalo exitosamente');
答案 1 :(得分:0)
在您看来,您已将消息注释掉:
{{-- $message -> Debe de mostrar el mensaje, tira error, htmlspecialchars() parece venir vacio desde la función. --}}
{{-- <strong>{!! $message !!}</strong> --}}
{{--
表示中的代码不会出现在呈现的HTML 中!因此,您不会在电子邮件中看到任何$message
。
答案 2 :(得分:0)
你有一个变量碰撞。首先,您要将$message
设置为来自您用户的一些内容:
'message' => $request->get('message'),
但是你在发送方法中使用$message
来识别可邮寄的类实例。 From the docs:
指定收件人后,您可以将mailable类的实例传递给send方法
所以当你这样做时:
), function($message) use ($request)
您实际上正在重新定义$message
作为您的mailable类的实例,并且您的原始$message
会被覆盖。
要修复,只需使用其他变量名称即可避免混淆:
Mail::send('emails.send',
array(
'name' => $request->get('name'),
'addressee' => $request->get('addressee'),
'user_message' => $request->get('message'), // <- changed
'location' => $id
), function($message) use ($request) // <- do not change
现在,在您看来,您可以访问$user_message
。
<p class="text-justify font-bold">
<strong>{!! $user_message !!}</strong>