verificar verificacion saber lista existencia existe esta electronicos electronico cuenta correos correo comprobar como activo java email smtp mime-message

java - verificacion - ¿Cómo comprobar la dirección de correo existe o no?



verificar si cuenta existe (2)

Estoy enviando un correo electrónico a través de Java utilizando com.sun.mail.smtp.SMTPTransport .

Tengo éxito en enviar el correo electrónico, pero SMTPTransport no da ningún error si envío el correo a una dirección de correo electrónico no válida.

¿Hay alguna forma de verificar que la dirección de correo dada existe o no?

No quiero verificar la dirección de correo como parte del cliente , necesito verificar como parte del servidor .

Encontré muchas preguntas como esta en muchos foros, pero no obtengo ninguna solución adecuada.

Mi código es -

String email = "[email protected]"; Properties props = new Properties(); props.put("mail.smtps.host", "mail.myDomain.com"); props.put("mail.smtps.auth", "true"); Session session = Session.getInstance(props, null); MimeMessage msg = new MimeMessage(session); msg.setFrom(new InternetAddress("Mail Demo <[email protected]>")); msg.setRecipients(Message.RecipientType.TO, email); msg.setSubject("Mail Example"); msg.setSentDate(new Date(System.currentTimeMillis())); String txt = "Message Body"; msg.setText(txt); SMTPTransport st = (SMTPTransport)session.getTransport("smtps"); st.connect("mail.myDomain.com","[email protected]","password"); st.sendMessage(msg, msg.getAllRecipients()); System.out.println("ServerResponse : " + st.getLastServerResponse());

Da salida para direcciones de correo electrónico válidas y no válidas: - 250 ID de OK = 1TbWgN-0007oY-8r

Por favor ayúdame a resolver el problema. Gracias por adelantado.


Gracias a todos por sus respuestas.

Soy capaz de resolver mi problema a través de la verificación de registros MX .

Utilicé este Link para resolver el problema. Que esto también sea útil para alguien.

Hashtable env = new Hashtable(); env.put("java.naming.factory.initial", "com.sun.jndi.dns.DnsContextFactory"); DirContext ictx = new InitialDirContext( env ); Attributes attrs = ictx.getAttributes ( hostName, new String[] { "MX" }); Attribute attr = attrs.get( "MX" ); if (( attr == null ) || ( attr.size() == 0 )) { attrs = ictx.getAttributes( hostName, new String[] { "A" }); attr = attrs.get( "A" ); if( attr == null ) throw new NamingException ( "No match for name ''" + hostName + "''" ); }

Gracias.


La única forma de confirmar una dirección de correo electrónico es enviándole un correo electrónico y exigiéndole al usuario que siga un enlace (único) en el correo electrónico a su sitio web.