2010-03-26 129 views
0

因此,我被要求幫助維護使用Ruby on Rails的網站。現在,讓我只是說我一直在編程Ruby,但我還是Rails的新手。引起我注意的第一個問題是激活電子郵件如何到達大約六個小時。如果電子郵件由於錯誤而未被髮送,但發送正確,速度很慢,那將是一回事。此外,運行的服務器也是它自己的SMTP。在調用setup_email方法之前,我檢查了電子郵件是如何格式化的,而且一切看起來都不錯。我甚至挖掘了ActionMailer庫並讀取了那裏的文件,並沒有看到任何不尋常的東西。那麼,最有可能導致電子郵件花費六個小時才能完成的事情呢?ActionMailer發送的電子郵件需要6個小時才能發送郵件

編輯: 我試着Roadmaster的想法,並發現了一些奇怪的事情。雖然正常的電子郵件發送似乎有記錄在日誌中的正常延遲(例如「延遲= 0.99,延遲= 0.08/0.01/0.19/0.7」),我注意到有多封電子郵件嘗試將電子郵件發送到[email protected] 。所有這些都不同,因爲它找不到這樣的主機。但與它們相關的延遲要大得多(例如「延遲= 239853,延遲= 239818/0.02/35/0」)。現在這聽起來更像是Rails代碼中的問題,而不是sendmail配置問題,但我剛開始維護此站點。哪裏可能開始尋找?

+0

查看郵件中已收到的標題。他們會告訴你延遲的地方。 –

回答

1

你能訪問服務器的郵件日誌嗎?如果它是Unix服務器,它們可能在/ var/log中。您可能會發現關於發生的事情的線索。這是我會做的:

  1. 找到SMTP服務器日誌(sendmail,exim,postfix,無論)。
  2. 使用tail -f whatever.log來關注日誌。讓它在終端中運行。
  3. 進入您的應用並執行任何需要的步驟來觸發發送激活電子郵件。
  4. 檢查你正在看日誌的窗口,看看會發生什麼。

的ActionMailer 本身應該不會引入大的延遲(雖然它沒有速度妖,同時提供郵件,它仍然應該處理少於1-2秒內的一切),所以它可能是其他一些你的堆棧的一部分,甚至是接收者端的問題/過濾器/灰名單。

+0

非常感謝!試過這個,發現了問題。我編輯了這個問題來反映這一點。任何想法現在進一步解決問題? –