Laravel邮件队列 - 附件是否通过铁服务器?

时间:2015-06-23 10:00:05

标签: email laravel-5 message-queue iron.io

我正在使用Iron.io推送队列。如果我使用这样的代码,请解释附件会发生什么:

Mail::queue( 'email', array('body' => 'msg body here'), function($message) {
    $message
        ->to('email@gmail.com')
        ->subject('Subject')
        ->attach(storage_path() . '/file.mp4' );
});

如果文件很小(<100 KB),那么对这样一个页面的请求似乎非常快。如果文件大小为5MB,则请求需要几秒钟。因此,看起来Laravel序列化附件,将它们发送到Iron服务器,然后Iron将其发送回我的服务器,然后最终发送电子邮件。这是真的吗?

这不是我对队列的期望。我希望立即回复用户。我完全确定同步驱动程序已关闭且应用程序使用铁,因为我在iron.io仪表板中看到了消息。

顺便说一下,我使用ngrok调整来处理本地开发机器上的队列。也许这就是原因?

1 个答案:

答案 0 :(得分:0)

我不确定Mail :: queue是否会转到IronMQ,但是如果确实如此,我认为您希望以一种身体不会随其发送的方式进行设置。< / p>

不是排队邮件,而是排队电子邮件的元数据,例如:

Queue::push(new SendEmail($message, $filepath));

然后,当推送回到您的应用时,SendMail可以拨打同步发送邮件:

Mail::send( 'email', array('body' => 'msg body here'), function($message) {
    $message
        ->to('email@gmail.com')
        ->subject('Subject')
        ->attach(storage_path() . $filepath );
});

我不是一个PHP人,所以代码可能有点偏,但它应该传达这个想法。