2017-01-24 38 views

回答

2

号的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); 
    } 
}); 

注:这是未经测试,但我认为它应该工作。

+0

有没有办法直接发送邮件而不使用mailable类? –

+0

@ParthVora更新了我的答案。 – patricus

+0

我想这只适用于你设置了消息的视图。使用默认减价模板时,它不能按预期工作。它引发了一个'InvalidArgumentException',其消息*无效视图。*用于'$ message-> view'参数。 –

相关问题