У меня есть приведенный ниже код для отправки электронных писем с помощью функции Mail :: to. Но я не понимаю, как установить тему и тело сообщения с помощью Mail :: to function. У меня есть код ниже, который работает для отправки электронных писем, но без темы, и сообщение $ также не отображается в электронном письме.
Вы знаете, как этого добиться? (Укажите тему и сообщение $ request-> в электронном письме, используя Mail :: to)
public function send(Request $request, $id){
$conference = Conference::find($id);
if ($request->send_to == "participant"){
// if is to send only 1 email the Mail::to is called directly here
Mail::to($request->participant_email)->send(new Notification($conference));
return;
}
if ($request->send_to == "all"){
// $sendTo = query to get a set of emails to send the email
}
else{
// $sendTo = query to get a another set of emails to send the email
}
foreach($sendTo as $user){
$usersEmail[] = $user->email;
}
$message = $request->message;
$subject = $request->subject;
foreach ($usersEmail as $userEmail){
Mail::to($userEmail)->send(new Notification($conference, $message));
}
}
В классе Уведомление у меня есть:
class Notification extends Mailable
{
public $conference;
public function __construct(Conference $conference)
{
$this->conference = $conference;
}
public function build()
{
return $this->markdown('emails.notification');
}
}
В представлении notifications.blade.php у меня есть:
@component('mail::message')
# Notification relative to {{$conference->name}}
{{$message}}
Thanks,<br>
{{ config('app.name') }}
@endcomponent






Попробуйте что-то вроде этого:
$emailData = array(
/* Email data */
'email' => '[email protected]',
'name' => 'User name',
'subject' => 'Email subject',
);
Mail::send('emails.template_name', ['emailData' => $emailData], function ($m) use ($emailData) { // here it is a closure function, in which $emailData data is available in $m
$m->from('[email protected]', 'Domain Name');
$m->to($emailData['email'], $emailData['name'])->subject($emailData['subject']);
});
@ Джон тебя не понял
try
{
Mail::send('emails.contact_form', ['data' => $data],
function($message) use ($data)
{
$message->from('[email protected]', 'ShortName');
$message->to( $data['adminEmail'] )->subject("Contact Form" );
});
return true;
}
catch (\Exception $ex) {
$ex->getMessage();
return false;
}
Спасибо, но появляется сообщение «Для [mail] путь подсказки не определен».
Убедитесь, что вы создали contact_form.blade.php, созданный в папке resources / views / emails.
Поскольку у вас уже есть один шаблон в вашем коде, используйте этот шаблон, передайте сообщение в шаблон
$subject = 'Email Subject';
Mail::send('emails.notification', ['message' => $message], function ($mail) use ($userEmail, $subject) {
$mail->from('[email protected]', 'Domain Name');
$mail->to($userEmail)->subject($subject);
});
Спасибо, похоже, что "htmlspecialchars () ожидает, что параметр 1 будет строкой, заданным объектом".
может быть проблема в сообщении, настройте статическое сообщение в блейд-файле уведомлений и попробуйте.
Спасибо, но вроде появляется сообщение «Для [mail] путь подсказки не определен».