我的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实例方法。一个简单地与另一个混合。