2009-09-19 77 views
0

我正在構建一個用戶發送網站邀請的工具。 ActionMailer是發送郵件的最佳方式嗎?這似乎非常緩慢。ActionMailer的效率如何?

任何人都有其他建議嗎?

(Ubuntu Intrepid Server)

謝謝。

+0

您能否詳細說明您如何衡量ActionMailer的速度?向郵件網關傳遞郵件需要多少毫秒?你期望的消息量是多少?您是否比較了郵件服務器發送速率與ActionMailer每秒可以提供的郵件數量? – cite 2009-09-19 13:32:31

+0

我們正在使用谷歌應用程序。每封郵件大約需要2-3秒。我只是通過查看開發日誌來衡量。 – chrishomer 2009-09-19 15:29:17

回答

3

動作郵件對你來說太慢了,因爲它是同步發送的,等待谷歌通過整個郵件發送協議。您可以在日誌中詳細瞭解這一點。直到郵件發送完成,請求才會完成。

你有幾個選項,以加快這:

  • 使用異步發送。這可以來自後臺作業/延遲作業等工具,我建議啓動。甚至可能有更輕的解決方案。如果這不能解決它,starling和workling會爲此提供更強大的隊列。

  • 附加到本地郵件發件人。您可以設置本地smtp服務器,或使用send_mail配置選項。

+0

感謝您的建議。我現在使用守護進程gem,並且已經建立了一個郵件隊列表。這將現在工作。我們也在使用sendgrid.com查看選項 – chrishomer 2009-09-27 16:46:37

0

如果你認真發送郵件,你可能應該有自己的郵件服務器,我個人使用http://www.rackspacecloud.com/cloud_hosting_products/servers,您可以按照指示http://cloudservers.mosso.com/index.php/Postfix_-_Installation(Ubuntu的耐寒),並讓自己的後綴MTA運行起來(說起來容易比做)。我同意ndp關於異步發送,但是如果你發送了大量的電子郵件,gmail會限制你每天的最大數量的郵件。這是我使用的方法,即使從其他服務器發送時,發送也需要幾毫秒。