0
我有一個需要使用擴展smtp(esmtp)進行身份驗證的SMTP服務器,我無法找到讓我的rails應用程序與EHLO而不是HELO進行身份驗證。Ruby on Rails:如何使用'ehlo'而不是'helo'連接到郵件服務器
有什麼想法?
我有一個需要使用擴展smtp(esmtp)進行身份驗證的SMTP服務器,我無法找到讓我的rails應用程序與EHLO而不是HELO進行身份驗證。Ruby on Rails:如何使用'ehlo'而不是'helo'連接到郵件服務器
有什麼想法?
你確定Rails還沒有這樣做嗎?通過源代碼挖掘,Rails將代表郵寄給代表Net::SMTP
的郵件寶石。如果您查看lib/net/smtp.rb的Ruby源代碼,您會發現它在某個時候會調用私有的do_helo
方法,該方法會檢查@esmtp
變量,如果爲true,則執行ehlo而不是helo。回顧初始化,默認情況下,它將@esmtp
設置爲true。我沒有看到任何它沒有得到解決的地方。
也許這是別的嗎?
對於參考do_helo
在Net::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
真奇怪,託管服務器公司告訴我從錯誤來自我的應用程序,做了HELO日誌,而不是EHLO – Lefty
或許有產生一個ProtocolError在你的最終導致它翻轉開關爲false並重試(如代碼所示)? –
^正是這樣,謝謝所有的問題都解決了 – Lefty