是否有一种方法可以测试使用电子邮件GEM的电子邮件连接



我的Rails应用程序使用Ruby脚本从数据库中检索对象。该OBJET由六个字段组成:

  • 登录
  • 密码
  • 服务器
  • 端口
  • event_type_id
  • 活动

使用邮件GEM,我正在使用这些信息来使用Mail.defaults创建新的邮件连接,例如我的MailConnection模型:

def check
    begin
        puts("Attempting to connect to the specified email server...")
        Mail.defaults do
        retriever_method :pop3, :address => :server,
                :port         => :port,
                :user_name      => :login,
                :password      => :password,
                :enable_ssl      => false
        end
    rescue Exception => msg
        puts("Unconnected : #{msg}")
        false
    else
        puts("Connected")
        true
    end
end

我在Ruby脚本中使用此方法来检查连接是否可以在执行任何操作之前可以估计,但是如果我使用无效的数据,即使网络无法实现,它仍然返回" true"。我都是Ruby的新手,我想知道我的功能有什么问题;

预先感谢。

我自己是初学者,但一直在看这个。

with net/pop

require 'net/pop'
pop = Net::POP3.new('your.mail.server', optional_port)
pop.start('your_username', 'your_password') #should return an error if it fails
pop.started? #if you want to double check

使用邮件GEM

如果您宁愿使用邮件GEM本身,则POP3检索器中的connection方法可以通过将POP3对象产生到一个块中,从而使您可以从相同的方法中获取这些方法:

Mail.defaults do
  retriever_method :pop3, :address => :server,
    :port         => :port,
    :user_name      => :login,
    :password      => :password,
    :enable_ssl      => false
end
Mail.connection {|pop3| pop3.active? }

您可能会注意到我使用started?active?互换:它们是同一POP3实例方法。一个简单地与另一个混合。

最新更新