He visto algunos ejemplos php de cómo puede hacer ping a una bandeja de entrada (sin enviar ningún correo) para verificar si existe. Me preguntaba si alguien sabe si esto es posible con .net? Si voy a escribir una aplicación para hacer un control masivo de la lista de correos electrónicos que he capturado a través de mi sitio.¿Puedo verificar si existe una dirección de correo electrónico usando .net?
Respuesta
¿Qué quieres decir si escribes "consultar correo electrónico"? Sin enviar un enlace exclusivo para el propietario del correo electrónico, no puede verificarlo, solo puede verificar la sintaxis del correo electrónico y la conexión a smtp.
public static bool isEmail(string inputEmail)
{
inputEmail = NulltoString(inputEmail);
string strRegex = @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}" +
@"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\" +
@".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$";
Regex re = new Regex(strRegex);
if (re.IsMatch(inputEmail))
return (true);
else
return (false);
}
comprobación SMTP
string[] host = (address.Split('@'));
string hostname = host[1];
IPHostEntry IPhst = Dns.Resolve(hostname);
IPEndPoint endPt = new IPEndPoint(IPhst.AddressList[0], 25);
Socket s= new Socket(endPt.AddressFamily,
SocketType.Stream,ProtocolType.Tcp);
s.Connect(endPt);
Esto no es infalible. Lo mejor que puede hacer es verificar la sintaxis y ver si el nombre de dominio se resuelve.
Email sintaxis RegEx: (?<username>#?[_a-zA-Z0-9-+]+(\.[_a-zA-Z0-9-+]+)*)@(?<domain>[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|arpa|asia|coop|info|jobs|mobi|museum|name|travel)))
Bueno, no me cansé, pero podría ser porque la pregunta específicamente solicita una solución para hacer ping al servidor, no verificar la sintaxis. Tal vez la pregunta fue cambiada después de tu respuesta. –
No, no es posible, en principio, para comprobar si existe un correo electrónico - independiente del lenguaje. Simplemente no hay protocolo para hacerlo.
Existen algunas soluciones parciales, pero ninguna de ellas es confiable.
Consulte How to check if an email address exists without sending an email? para obtener más información.
SMTP defines the VRFY
command for this, pero como el abuso por parte de los spammers abruma totalmente la cantidad de usos legítimos, prácticamente todos los servidores de correo electrónico del mundo son configured to lie.
+1 para explicar exactamente por qué no hay una manera confiable de hacer lo que el OP quiere. En una nota personal, cualquier cosa que haga que el correo masivo sea más difícil es sin dudas algo bueno. –
+1 dittoing @Joel – Brad
@Joel: Bueno, * hay * correo masivo legítimo (listas de correo, etc.). Pero es cierto que la mayoría del correo masivo es ilegítimo, aunque eso es deplorable. – sleske
protected bool checkDNS(string host, string recType = "MX")
{
bool result = false;
try
{
using (Process proc = new Process())
{
proc.StartInfo.FileName = "nslookup";
proc.StartInfo.Arguments = string.Format("-type={0} {1}", recType, host);
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.ErrorDialog = false;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.OutputDataReceived += (object sender, DataReceivedEventArgs e) =>
{
if ((e.Data != null) && (!result))
result = e.Data.StartsWith(host);
};
proc.ErrorDataReceived += (object sender, DataReceivedEventArgs e) =>
{
if (e.Data != null)
{
//read error output here, not sure what for?
}
};
proc.Start();
proc.BeginErrorReadLine();
proc.BeginOutputReadLine();
proc.WaitForExit(30000); //timeout after 30 seconds.
}
}
catch
{
result = false;
}
return result;
}
Esto ha sido probado y está funcionando. Básicamente convertí el ejemplo de php. –
http://www.codicode.com/art/free_asp_net_email_validator_verifier.aspx. Usa la referencia dll a tu código. Es gratis tanto para uso personal como para redistribución. Comprueba la existencia del nombre de dominio sin enviar realmente un correo electrónico.
- 1. ¿Cómo verificar si existe una dirección de correo electrónico?
- 2. cómo verificar si realmente existe una dirección de correo electrónico dada en C#?
- 3. verificar una dirección de correo electrónico existen en C#
- 4. ¿Cómo comprobar si una dirección de correo electrónico es falsa?
- 5. Identificar si una dirección de correo electrónico es 'pública'
- 6. Cómo verificar que realmente exista una dirección de correo electrónico enviando un correo electrónico a java
- 7. ¿Cómo verificar si existe una identificación de correo electrónico o no?
- 8. dirección de correo electrónico noreply.
- 9. CakePHP - ¿El método de utilidad para verificar una cadena es una dirección de correo electrónico válida?
- 10. ¿Cómo puedo mayúsculas una dirección de correo electrónico?
- 11. PHP buscar una cadena para una dirección de correo electrónico
- 12. Verificar que una dirección de correo electrónico sea válida como una cuenta de google
- 13. Control .NET como Outlook Dirección de correo electrónico Texto Control
- 14. Cómo enviar correos electrónicos usando Amazon SES sin verificar 'de' dirección de correo electrónico
- 15. postfix: envíe una copia de cada correo electrónico a una dirección de correo electrónico dada
- 16. ¿Cómo puedo extraer el nombre de usuario de una dirección de correo electrónico usando javascript?
- 17. ¿Cómo puedo obtener la dirección de correo electrónico
- 18. ¿Cómo debo verificar si existe Gravatar?
- 19. ¿Cómo puedo verificar si existe un archivo usando Emacs Lisp?
- 20. ping para verificar direcciones de correo electrónico reales
- 21. Agregar Bcc al envío de correo electrónico usando .NET SmtpClient?
- 22. Comprobar si existe un correo electrónico con TELNET y PHP
- 23. ¿Cómo identifico un servicio de correo web desde una dirección de correo electrónico?
- 24. recibir correo electrónico usando matlab
- 25. ¿Cómo puedo verificar si existe una cadena en una matriz?
- 26. C# ¿Cómo puedo verificar si existe una URL/es válida?
- 27. ¿Cómo puedo verificar si existe un directorio?
- 28. ¿cómo puedo verificar si existe un archivo?
- 29. ¿Puede haber un apóstrofo en una dirección de correo electrónico?
- 30. Drupal recibe una dirección de correo electrónico amplia del sitio?
No solo no es posible en .NET, no es remotamente posible en absoluto. –
posible duplicado de [¿Cómo verificar si existe una dirección de correo electrónico sin enviar un correo electrónico?] (Http://stackoverflow.com/questions/565504/how-to-check-if-an-email-dress-exists-without- enviando un correo electrónico) –
@Daniel, creo que eso es lo que phil quiere decir con "He visto algunos ejemplos de php", esta pregunta es sobre .NET. Por supuesto, "no hay una manera confiable" es la respuesta correcta independientemente del idioma. –