【发布时间】:2021-12-18 10:35:39
【问题描述】:
我正在向markdown 中的多个收件人发送Newsletter Email,但我似乎无法在电子邮件中附加文件。通过action触发发送:
Resource:
public function fields(Request $request)
{
return [
ID::make(__('ID'), 'id')->sortable(),
Date::make('Created', 'created_at'),
Markdown::make('Message', 'content')->alwaysShow(),
File::make('File')->disk('public')
];
}
public function actions(Request $request)
{
return [
Actions\NewsletterMail::make()->standalone()
];
}
Action 触发控制器功能send:
public function handle(ActionFields $fields, Collection $models)
{
app(NewsletterMailController::class)->send();
}
Controller 获取所有收件人的电子邮件并向他们发送mailable:
public function send()
{
$emails = DB::select('select * from newsletter_recipients order by id desc');
foreach ($emails as $email) {
Mail::to($email)->send(new NewsletterMail());
}
}
Mailable 获取当前的newsletter email 并将其返回为markdown:
public function build()
{
$this->content = DB::select('select * from newsletter_mails order by id desc limit 1')[0]->content;
return $this->markdown('emails.newsletter')->with('content', $this->content);
}
如您所见,resource 有一个file field。我可以在nova dashboard 中为它分配一个文件,但是当发送电子邮件时,它到达时没有附件。
我能做什么?
【问题讨论】:
标签: php laravel email laravel-8 laravel-nova