Ruby проверка электронной почты (RFC 2822) - PullRequest
7 голосов
/ 11 февраля 2009

Кто-нибудь знает, что такое регулярное выражение в Ruby для проверки правильности адреса электронной почты в формате RFC 2822?

Что я хочу сделать, это:

string.match(RFC_2822_REGEX)

где "RFC_2822_REGEX" - это регулярное выражение для проверки правильности моей строки в форме RFC 2882.

Ответы [ 4 ]

12 голосов
/ 08 февраля 2012

Вы можете использовать гем mail для анализа любой строки в соответствии с 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 для пустого адреса, а также проверяет, что адрес содержит домен.

2 голосов
/ 11 февраля 2009

Основываясь на ответах на этот подобный вопрос, вы можете пересмотреть использование регулярного выражения для этого.

2 голосов
/ 11 февраля 2009

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

Выполняет ли проверку регулярных выражений на основе правил RFC2822 (это тоже чудовище регулярных выражений), он также может проверять допустимость домена в DNS (имеет записи MX или A) и выполнять тестовую доставку для проверки того, что MX для домена приму сообщение по указанному адресу. Эти последние две проверки являются необязательными.

1 голос
/ 11 февраля 2009

Попробуйте это:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...