在电子邮件中附加文件

Attach a file in an email

我想将文件作为附件与从我的 laravel 应用程序发送的电子邮件一起发送。这就是我尝试附加文件的方式

  $path = Storage::url($this->newsletter["file"]);

  Mail::send(new NewsLetterEmail($this->newsletter), [], function ($message) use ($path) {
        $message->attach($path);
  });

但是发送的电子邮件没有附件。如何将文件附加到电子邮件?

你需要使用 storage_path() 来指向 storage 路径中的文件,然后你可以这样做

 Mail::send(new NewsLetterEmail($this->newsletter), [], function ($message) use ($path) {
    $message->attach($path);
 });

如果您需要更改附件名称或添加您可以添加的文件 mime 类型

 Mail::send(new NewsLetterEmail($this->newsletter), [], function ($message) use ($path) {
    $message->attach($path, [
       'as' => 'Attached file name',
       'mime' => 'Attached file mime type',
    ]);
 });