2012-01-06 54 views
0

我已經在基本的Ruby中編寫了一個SendMail腳本,它工作得很好。問題是如果腳本發送到像「notavliable1」這樣的電子郵件地址,我得到的SMTP錯誤,收據無法訪問和腳本停止。如何爲我的「發送郵件」腳本實現異常? (使用「郵件」Gem)

我需要一個例外來爲Mailaddress過濾或REGEX。

下面是摘錄:

require 'mail' 

mail = Mail.new do 
     from '[email protected]' 
     to ("#{send.toAdress}") 
     subject ("#{send.subject}") 

     html_part do 
     content_type 'text/html; charset=UTF-8' 
     body ("#{send.body}") 
     end 
    end 

我如何告訴我的片段跳過無效「send.toAdress」?

我使用'郵件'寶石。

回答

0

使用異常可能是最佳做法,因爲REGEX在郵件地址中找不到每個可能的錯誤。

我沒有特定的寶石知識,但如果一個正則表達式的解決方案會做,你可以添加

require 'mail' 

mail = Mail.new do 
     from '[email protected]' 
     to ("#{send.toAdress}") 
     subject ("#{send.subject}") 

     html_part do 
     content_type 'text/html; charset=UTF-8' 
     body ("#{send.body}") 
     end 
    end if send.toAdress.match /regex_to_match_email/ 

至於/regex_to_match_email/,我認爲這是一個品味的問題。我通常使用這一個

\b[A-Z0-9._%-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}\b 

但是,它是很不完美的。

+0

謝謝你,但我想我需要一個例外。該腳本需要運行很長時間而沒有錯誤。 – 2012-01-09 09:07:38

相關問題