我在基本的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'宝石。
答案 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
然而,它远非完美。