2012-11-13 44 views

回答

1

你確定Rails還沒有這樣做嗎?通過源代碼挖掘,Rails將代表郵寄給代表Net::SMTP的郵件寶石。如果您查看lib/net/smtp.rb的Ruby源代碼,您會發現它在某個時候會調用私有的do_helo方法,該方法會檢查@esmtp變量,如果爲true,則執行ehlo而不是helo。回顧初始化,默認情況下,它將@esmtp設置爲true。我沒有看到任何它沒有得到解決的地方。

也許這是別的嗎?

對於參考do_heloNet::SMTP

def do_helo(helodomain) 
    begin 
    if @esmtp 
     ehlo helodomain 
    else 
     helo helodomain 
    end 
    rescue Net::ProtocolError 
    if @esmtp 
     @esmtp = false 
     @error_occured = false 
     retry 
    end 
    raise 
    end 
end 
+0

真奇怪,託管服務器公司告訴我從錯誤來自我的應用程序,做了HELO日誌,而不是EHLO – Lefty

+0

或許有產生一個ProtocolError在你的最終導致它翻轉開關爲false並重試(如代碼所示)? –

+0

^正是這樣,謝謝所有的問題都解決了 – Lefty