这就是我想要做的(使用laravel-medialibrary):
$message = Message::find(50);
$media = $message->getFirstMedia();
//todo can be more than one
$fileName = $media->id . '/' . $media->file_name;
$file = Storage::disk('s3')->get($fileName);
//create mailable
$mail = (new NotificationMail($this->template, new NotificationLog()))
->mailer('smtp')
->from('test@fdsf.co.uk', 'A. Test')
->subject('Any Luck')
->attach($file);
$response = Mail::to('fsdafd@gfdsg.com')->send($mail);
尝试以各种方式执行此操作,但附件始终只是邮件中的文本:
--_=_swift_1601042677_ccb98caa4058cf66bc6face36e70ef0a_=_ Content-Type: application/octet-stream; name="=?utf-8?Q?
答案 0 :(得分:0)
您可以尝试这样
$mail = (new NotificationMail($this->template, new NotificationLog()))
->mailer('smtp')
->from('test@fdsf.co.uk', 'A. Test')
->subject('Any Luck')
->attachFromStorage('/path/to/file', 'name.pdf', ['mime' => 'application/pdf']);
或者您可以将路径附加到电子邮件
$file = Storage::disk('s3')->url($fileName);
答案 1 :(得分:0)
这是胡说八道。
attachFromStorage可以正常工作,但是之后邮件已格式化。
这会以某种方式将主体设置为空,从而阻止附件正常工作。