Как отправить несколько вложений в почту Laravel - PullRequest
0 голосов
/ 18 сентября 2018

Я создал два отдельных файла Excel $recent_signup_file, $ddr_failed_file и приложил их к почтовому приложению laravel

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, это правильно, или я что-то пропустил, может кто-нибудь мне помочь,

Как мне это сделать?

1 Ответ

0 голосов
/ 18 сентября 2018

Какую версию Laravel вы используете? Вы должны использовать Mailable, если вы используете Laravel 5.4+, что-то вроде этого:

Mail::to($recipient)->send(new WeeklyReport($data));

В пределах еженедельного отчета WeeklyReport вы должны прикрепить свои файлы и передать массив ваших данных в представление, подобное этому:

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 +.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...