如何为“发送邮件”脚本实现例外? (使用“邮件”宝石)

时间:2012-01-06 13:02:28

标签: ruby-on-rails ruby exception gem sendmail

我在基本的Ruby中编写了一个SendMail脚本,它运行得很好。问题是如果脚本发送到像“notavliable1”这样的电子邮件地址,我会收到SMTP错误,表明收据无法访问且脚本停止。

我需要一个例外来过滤或使用Mailaddress的REGEX。

以下是摘录:

require 'mail'

mail = Mail.new do
      from 'peter@lustig.de'
      to ("#{send.toAdress}")
      subject ("#{send.subject}")

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

如何告诉我的代码段跳过无效的“send.toAdress”?

我正在使用'mail'宝石。

1 个答案:

答案 0 :(得分:0)

使用异常可能是最佳做法,因为REGEX不会在邮件地址中找到所有可能的错误。

我不知道具体的gem,但如果正则表达式解决方案可以,你可以添加

require 'mail'

mail = Mail.new do
      from 'peter@lustig.de'
      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._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b
然而,它远非完美。