我的rails应用程序使用Ruby脚本从我的数据库中检索对象。 该对象由以下六个字段组成:
使用mail gem,我正在使用这些信息使用Mail.defaults创建一个新的Mail连接,就像在我的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的新手,我想知道我的功能有什么问题;
提前致谢。
答案 0 :(得分:0)
我自己是初学者,但刚刚看过这个。
使用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
使用Mail gem
如果您更喜欢使用Mail 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实例方法。一个是别人的别名。