2017-01-24 1 views
3

В уведомлении по электронной почте, мы можем использовать некоторый API, чтобы написать письмо быстро, используя такие методы, как приветствие(), линию() и т.д ..Можем ли мы использовать MailMessage API в классе Mailable?

https://laravel.com/docs/5.4/notifications#mail-notifications

Можно ли использовать один и тот же API в классе разрешенного к пересылке по почте?

Благодаря

+0

Это будет запрос на тяну. – ademin

ответ

2

No. Mailable класс не реализует те же методы, что и MailMessage класса.

Вы можете использовать класс MailMessage за пределами уведомлений, если вам нужно, но вам придется отправлять почтовый объект самостоятельно.

$message = (new \Illuminate\Notifications\Messages\MailMessage()) 
    ->to(/* */) 
    ->subject(/* */) 
    ->line(/* */) 
    ->action(/* */) 
    ->line(/* */); 

// most of this code is copied from \Illuminate\Notifications\Channels\MailChannel 
Mail::send($message->view, $message->data(), function ($m) use ($message) { 
    if (!empty($message->from)) { 
     $m->from($message->from[0], isset($message->from[1]) ? $message->from[1] : null); 
    } 

    $m->to($message->to); 

    if ($message->cc) { 
     $m->cc($message->cc); 
    } 

    if (!empty($message->replyTo)) { 
     $m->replyTo($message->replyTo[0], isset($message->replyTo[1]) ? $message->replyTo[1] : null); 
    } 

    $m->subject($message->subject ?: 'Default Subject'); 

    foreach ($message->attachments as $attachment) { 
     $m->attach($attachment['file'], $attachment['options']); 
    } 

    foreach ($message->rawAttachments as $attachment) { 
     $m->attachData($attachment['data'], $attachment['name'], $attachment['options']); 
    } 

    if (!is_null($message->priority)) { 
     $m->setPriority($message->priority); 
    } 
}); 

NB: это не проверено, но я думаю, что он должен работать.

+0

И есть ли способ отправить почту напрямую без использования класса почты? –

+0

@ParthVora Обновлен мой ответ. – patricus

+0

Я полагаю, что это работает, только если вы установите представление сообщения. При использовании шаблона уценки по умолчанию он работает не так, как ожидалось. Он выдает 'InvalidArgumentException' сообщение с сообщением * Недопустимое представление. * Для параметра' $ message-> view' param. –