我有一个需要使用扩展smtp(esmtp)进行身份验证的SMTP服务器,我找不到让我的rails应用程序通过EHLO而不是HELO进行身份验证的方法。
任何想法?
答案 0 :(得分:1)
你确定Rails还没有这样做吗?通过源代码挖掘,Rails委托给代理Net::SMTP
的Mail gem。如果你看一下lib / net / smtp.rb的Ruby源代码,你会发现它在某些时候会调用一个私有的do_helo
方法来检查@esmtp
变量,如果为true,那么ehlo会改为你好。回顾初始化,默认情况下将@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