我需要通过我的rails应用程序向客户发送原始电子邮件。
当他们点击链接时,必须打开新页面,他们需要能够看到电子邮件的源代码。我有很多情况下电子邮件非常大(甚至40/50 mb),服务器发送它需要花费大量时间。 E.G。
我有一封包含3个附件的电子邮件,总大小为30mb。我的 控制器方法它需要700毫秒来处理它并检索 来自imap服务器的原始资源,但在broswer中,最多需要5个 秒。 (2.5到第一个字节,2.5下载它)。
现在我只使用render方法发送字符串。有没有更好的办法?我一直在失去的地方?
更清楚:
使用“发送”一词,我的意思是服务器必须将源代码“发送”到浏览器,以便可以将其显示为
答案 0 :(得分:0)
如何在您的服务器上存储附件,并在电子邮件中仅包含指向这些附件的链接?通过这种方式,您的电子邮件将非常快速,客户可以单独下载附件。如果您不想在服务器上存储文件,可以使用Amazon S3或其他云存储(目前有很多云存储)。
为了简化文件上传,我建议您使用carrierwave
库,Amazon S3集成在一起。
答案 1 :(得分:0)
我建议你使用延迟工作:https://github.com/collectiveidea/delayed_job或Sidkiq:https://github.com/mperham/sidekiq
当作业处于处理状态时,您可以将该电子邮件标记为Sending....
,一旦后台作业完成,您可以将其标记为Sent
希望这有帮助