Php 如何在laravel邮件中发送多个附件

Php 如何在laravel邮件中发送多个附件,php,laravel,Php,Laravel,我创建了两个单独的excel文件$recent\u signup\u file,$ddr\u failed\u file,并附加到laravel mailer上 Mail::send('emails.weeklyreports', ['data' => $data], function($message) use ($recipient, $subject_date, $recent_signup_file, $ddr_failed_file) { $message->from

我创建了两个单独的excel文件
$recent\u signup\u file,$ddr\u failed\u file
,并附加到laravel mailer上

Mail::send('emails.weeklyreports', ['data' => $data], function($message) use ($recipient, $subject_date, $recent_signup_file, $ddr_failed_file) {
   $message->from('support@whitebelt.co', 'Whitebelt.co Support');
   $message->to($recipient)->subject('Weekly Report '.$subject_date);
   $message->addAttachment($recent_signup_file->store("xlsx",false,true)['full']);
   $message->addAttachment($ddr_failed_file->store("xlsx",false,true)['full']);
});
但它给了我重复的excel文件,这是正确的还是我错过了什么,有人能帮我吗


如何使用它?

您使用的是哪种版本的Laravel?如果您使用的是Laravel 5.4+,则应该使用可邮寄的,如下所示:

Mail::to($recipient)->send(new WeeklyReport($data));
class WeeklyReport extends Mailable
{
    use Queueable, SerializesModels;

    public $data;

    public function __construct($data)
    {
         $this->data = $data;
    }

    public function build()
    {
        return $this->view('emails.weeklyreports', $this->data)
                ->from('support@whitebelt.co', 'Whitebelt.co Support')
                ->attach($this->data['recent_signup_file']->store("xlsx",false,true)['full'])
                ->attach($this->data['ddr_failed_file']->store("xlsx",false,true)['full']);
    }
}
在WeeklyReport邮件中,您可以附加文件并将数据数组传递给视图,如下所示:

Mail::to($recipient)->send(new WeeklyReport($data));
class WeeklyReport extends Mailable
{
    use Queueable, SerializesModels;

    public $data;

    public function __construct($data)
    {
         $this->data = $data;
    }

    public function build()
    {
        return $this->view('emails.weeklyreports', $this->data)
                ->from('support@whitebelt.co', 'Whitebelt.co Support')
                ->attach($this->data['recent_signup_file']->store("xlsx",false,true)['full'])
                ->attach($this->data['ddr_failed_file']->store("xlsx",false,true)['full']);
    }
}
请参阅Laravel文档


所有这些都假设您用于创建excel工作表的函数实际按预期工作。因为我们在这里没有看到该代码,所以我无法对其功能进行评论。但是以上是使用Laravel 5.4+附加文件的正确方法。

我使用了任务调度-Laravel,每周发送带有附件的邮件,我也使用了Laravel 5.5尝试使用可邮寄的邮件,如我的回答中所示。您的代码没有遵循Laravel 5.5邮件外观的Laravel文档。我已经用上面显示的方法发送了许多带有多个附件的电子邮件,并且没有任何问题。同样,这假设生成文件的代码没有错误,我不能保证不看到它。