使用Rails

时间:2015-09-22 09:08:47

标签: ruby-on-rails ruby download webserver

我需要通过我的rails应用程序向客户发送原始电子邮件。

当他们点击链接时,必须打开新页面,他们需要能够看到电子邮件的源代码。我有很多情况下电子邮件非常大(甚至40/50 mb),服务器发送它需要花费大量时间。 E.G。

  

我有一封包含3个附件的电子邮件,总大小为30mb。我的   控制器方法它需要700毫秒来处理它并检索   来自imap服务器的原始资源,但在broswer中,最多需要5个   秒。 (2.5到第一个字节,2.5下载它)。

现在我只使用render方法发送字符串。有没有更好的办法?我一直在失去的地方?

更清楚:

使用“发送”一词,我的意思是服务器必须将源代码“发送”到浏览器,以便可以将其显示为

2 个答案:

答案 0 :(得分:0)

如何在您的服务器上存储附件,并在电子邮件中仅包含指向这些附件的链接?通过这种方式,您的电子邮件将非常快速,客户可以单独下载附件。如果您不想在服务器上存储文件,可以使用Amazon S3或其他云存储(目前有很多云存储)。

为了简化文件上传,我建议您使用carrierwave库,Amazon S3集成在一起。

答案 1 :(得分:0)

我建议你使用延迟工作:https://github.com/collectiveidea/delayed_job或Sidkiq:https://github.com/mperham/sidekiq

当作业处于处理状态时,您可以将该电子邮件标记为Sending....,一旦后台作业完成,您可以将其标记为Sent

希望这有帮助