2009-02-11 25 views
7

¿Alguien sabe cuál es la expresión regular en Ruby para verificar que una dirección de correo electrónico tenga el formato de correo electrónico RFC 2822 correcto?Comprobación de correo electrónico de Ruby (RFC 2822)

Lo que quiero hacer es:

string.match(RFC_2822_REGEX) 

donde "RFC_2822_REGEX" es la expresión regular para verificar si mi cadena es válida en el RFC 2882 formulario.

+0

posible duplicado de [¿Cómo usar una expresión regular para validar una dirección de correo electrónico?] (Http://stackoverflow.com/questions/201323/how-to-use-a-regular-expression-to-validate-an -correos electrónicos) –

Respuesta

1

Trate this:

+0

este REGEX permite mensajes de correo electrónico como "[email protected]/x.com" y por lo tanto "prueba @ ejemplo /////////////////////// //////////x.com " –

2

Sobre la base de las respuestas a this pregunta similar, es posible que desee reconsiderar el uso de expresiones regulares para esto.

2

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

¿El validación de expresiones regulares basado en normas RFC2822 (que es un monstruo de una expresión regular, también), sino que también puede comprobar que el dominio es válida en DNS (tiene MX o registros A), y hacer una prueba entrega para validar que el MX para el dominio aceptará un mensaje para la dirección indicada. Estos dos últimos controles son opcionales.

12

Usted puede usar la gema mail para analizar cualquier cadena de acuerdo con RFC2822, así:

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 

Esto comprueba si se proporciona el correo electrónico, por ejemplo, devuelve false para una dirección vacía y también comprueba que la dirección contiene una dominio.

+0

Esto no analiza los correos electrónicos válidos enumerados en RFC3696, incluido" Abc \ @ def @ example.com ". :( – indirect

Cuestiones relacionadas