【问题标题】:How to queue email in a job with attachment laravel如何在带有附件 laravel 的作业中排队电子邮件
【发布时间】:2020-03-08 22:53:36
【问题描述】:

我创建了一个队列作业来向我的一批用户发送电子邮件,当我发送带有附件的电子邮件时它工作正常。但是当我将文件添加到队列时,我收到一个错误,提示无法序列化内容。

这是我的代码

$emailJob = (new SendNewsletter($id, $request->flag, $attachments))->delay(Carbon::now()->addSeconds(3));
        dispatch($emailJob);

【问题讨论】:

  • 你应该将上传的文件保存在某个地方(否则它会在请求之后消失)然后将该文件路径传递给你的工作
  • 谢谢@logbox,但问题是在保存我的文件后,我想要一个包含所有文件内容的文件数组,以便我可以操作文件以发送到其他 API,因为电子邮件是由另一个 API 发送,因此端点期望接收某种格式的文件(包含类型、大小、mime-type 等)
  • 保存文件后,您可以阅读它并做任何您想做的事情
  • 我怎么知道邮件已经全部发送,这样我就可以删除文件以减少一批不必要的文件

标签: php laravel email laravel-5 laravel-queue


【解决方案1】:

您不应将文件直接包含在作业中。而是做这样的事情:

  1. 将文件存储在磁盘上
  2. 使用磁盘上文件的文件路径创建作业
  3. 处理作业时:
    1. 从磁盘检索文件
    2. 发送您的时事通讯
    3. 从磁盘中删除文件

【讨论】:

  • 非常感谢,我按照程序发送了附件
猜你喜欢
  • 2018-06-18
  • 1970-01-01
  • 2019-03-09
  • 2018-11-30
  • 1970-01-01
  • 1970-01-01
  • 2020-08-11
  • 2016-12-17
  • 1970-01-01
相关资源
最近更新 更多