为什么从服务器发送电子邮件如此耗时?

时间:2014-10-16 23:55:27

标签: ruby-on-rails email ruby-on-rails-4 asynchronous devise

在我的localhost上,通过gmail发送包含devise gem的确认电子邮件平均需要5秒钟,观察到的上限几乎为10秒。经过一些研究后,看起来这是常态,因此,建议您的服务器异步处理电子邮件传递。该过程的哪个部分导致延误?使用浏览器登录Gmail并发送电子邮件可能会在短于十秒的时间内完成。服务器是否正在等待收到其发送的电子邮件的某种响应?

1 个答案:

答案 0 :(得分:1)

我怀疑你可以登录gmail并更快地发送消息但也许。但延迟是由tcp连接开销,ssl协商,SMTP身份验证引起的。在反垃圾邮件措施或SMTP横幅延迟方面也可能存在一些人为延迟。然后,您需要传输消息并等待服务器说出正确,并在传递方法返回之前断开连接。您可以在Web主机上运行自己的排队邮件服务器,这些服务器确实执行ssl,不执行身份验证等等,这样会更快。然后它可以通过您的上游智能主机或说谷歌等。这样可以更快地将控制权交还给rails应用程序,让邮件服务器处理排队,退出等操作,而不是让rails应用程序等待提交。