将文件(来自s3)附加到邮件

时间:2020-09-25 15:16:17

标签: php laravel

这就是我想要做的(使用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?

2 个答案:

答案 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可以正常工作,但是之后邮件已格式化。

这会以某种方式将主体设置为空,从而阻止附件正常工作。

相关问题