在通知电子邮件中,我们可以使用一些API使用greeting(),line()等方法快速编写邮件。
https://laravel.com/docs/5.4/notifications#mail-notifications
我们可以在Mailable类中使用相同的API吗?
由于
答案 0 :(得分: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);
}
});
注意:这是未经测试的,但我认为它应该可行。