Laravel发送自定义电子邮件

时间:2020-09-18 17:22:27

标签: php laravel laravel-mail laravel-controller

我不知道这是否可能

我正在尝试从我的用户表中向所有用户发送自定义电子邮件。我正在使用laravel中存在的邮件外观。

有一个类似这样的刀片模板:

@component('mail::message')
# New Book Lunch
 
This is the body of the email.

@component('mail::button', ['url' => $url ?? ''])
View Order
@endcomponent

Thanks,<br>
{{ config('app.name') }}
@endcomponent

我发送邮件的方法如下

class NewsLetterController extends Controller
{

    public function newsletter(Request $request)
    {
        $subject = $request->name;
        $message = $request->message;

        $email = User::pluck('email');
        Mail::to($email)->(Add my custom $message and $subject)->send(new NewsLetter());
    }


}

在这里,我想添加自定义消息并以填写表单为主题。该怎么做才能添加自定义消息?

1 个答案:

答案 0 :(得分:2)

查看文档:{​​{3}}

您可以通过构造函数将变量传递给Mailable。

Mail::to($request->user())->send(new NewsLetter($subject, $message));

在Mailable中:

class NewsLetter extends Mailable
{
    // ...

    public function __construct(string $subject, string $message) 
    {
       $this->subject = $subject;
       $this->message = $message;
    }
}

如果要将消息传递给视图,则您的build可能如下所示:

class NewsLetter extends Mailable
{
    // ...

    public function build()
    {
        return $this->view('emails.newsletter')
            ->with([
                'message' => $this->message,
            ]);
    }
}

最后,将消息添加到刀片中:

<p>{{ $message }}</p>