2014-01-22 164 views
0

我的rails應用程序使用Ruby腳本從我的數據庫中檢索一個對象。 這OBJET是由六個字段即是:有沒有辦法用電子郵件gem來測試電子郵件連接?

  • 登錄
  • 密碼
  • 服務器
  • 端口
  • event_type_id
  • 活躍

使用mail gem,我m使用這些信息創建一個新的郵件連接n的我MailConnection模型中使用Mail.defaults,像這樣:

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腳本此方法來檢查連接是否可以做任何事情之前etablished,但如果我使用無效DATAS ,即使網絡無法訪問,它仍然會返回「真實」。 我是Ruby的新手,我想知道我的功能有什麼問題;

在此先感謝。

回答

0

我是一個初學者,但剛剛看過這個。

淨/流行

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 

與郵件寶石

如果你想用郵件寶石本身,在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實例方法。一個只是另一個的別名。

相關問題