Показать тему и сообщение, отправляющее письмо с Mail :: to - PullRequest
0 голосов
/ 26 июня 2018

У меня есть код ниже для отправки электронных писем с использованием функции Mail ::. Но я не понимаю, как установить тему и текст сообщения с помощью функции Mail ::. У меня есть код ниже, который работает для отправки электронных писем, но без темы, и сообщение $ также не появляется в электронном письме.

Вы знаете, как этого добиться? (Имейте тему и сообщение $ 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

Ответы [ 3 ]

0 голосов
/ 26 июня 2018
try 
{ 
    Mail::send('emails.contact_form', ['data' => $data], 
    function($message) use ($data)
    {
        $message->from('emailasinenv@hosting.com', 'ShortName');
        $message->to( $data['adminEmail'] )->subject("Contact Form" );
    }); 
    return true;
}
catch (\Exception $ex) {
    $ex->getMessage();
    return false;            
}
0 голосов
/ 26 июня 2018

Поскольку у вас уже есть один шаблон в вашем коде, используйте этот шаблон, Передайте сообщение в шаблон

$subject = 'Email Subject';
Mail::send('emails.notification', ['message' => $message], function ($mail) use ($userEmail, $subject) {
    $mail->from('info@domain.com', 'Domain Name');
    $mail->to($userEmail)->subject($subject);
});
0 голосов
/ 26 июня 2018

Попробуйте что-то вроде этого:

$emailData = array(
/* Email data */
'email'     => 'user@email.com',
'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('info@domain.com', 'Domain Name');

$m->to($emailData['email'], $emailData['name'])->subject($emailData['subject']);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...