Ruby电子邮件检查(RFC 2822)

有谁知道Ruby中的正则表达式是validation电子邮件地址是否采用适当的RFC 2822电子邮件格式?

我想做的是:

string.match(RFC_2822_REGEX) 

其中“RFC_2822_REGEX”是正则表达式,用于validation我的字符串是否为有效的RFC 2882格式。

您可以使用mail gem根据RFC2822解析任何字符串,如下所示:

 def valid_email( value ) begin return false if value == '' parsed = Mail::Address.new( value ) return parsed.address == value && parsed.local != parsed.address rescue Mail::Field::ParseError return false end end 

这将检查是否提供了电子邮件,即为空地址返回false ,并检查该地址是否包含域。

根据这个类似问题的答案,您可能需要重新考虑使用正则表达式。

http://theshed.hezmatt.org/email-address-validator

是否基于RFC2822规则进行正则表达式validation(它也是正则表达式的怪物),它还可以检查域在DNS中是否有效(具有MX或A记录),并执行测试传递以validation域的MX将接受给定地址的消息。 最后两项检查是可选的。

试试这个: