Laravel 发送自定义电子邮件

Laravel sending custom email

不知道这样行不行

我正在尝试向我的用户 table 的所有用户发送自定义电子邮件。我正在使用 laravel.

中的邮件 fascades

有这样一个 blade 模板:

@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());
    }


}

在这里我想添加一条自定义消息并以我填写的表格为主题。怎么做才能添加自定义消息?

查看文档:https://laravel.com/docs/8.x/mail#sending-mail

您可以通过构造函数将变量传递给 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,
            ]);
    }
}

最后,您在 blade 中添加消息:

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