Ruby on Rails:如何使用'ehlo'而不是'help'连接到邮件服务器

时间:2012-11-13 17:28:58

标签: ruby-on-rails-3 mail-server

我有一个需要使用扩展smtp(esmtp)进行身份验证的SMTP服务器,我找不到让我的rails应用程序通过EHLO而不是HELO进行身份验证的方法。

任何想法?

1 个答案:

答案 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