J'envoie un e-mail via Java utilisant com.Sun.mail.smtp.SMTPTransport.
J'ai réussi à envoyer l'e-mail, mais SMTPTransport ne donnant aucune erreur si j'envoie l'e-mail à une adresse e-mail non valide.
Existe-t-il un moyen de vérifier que l'adresse e-mail donnée existe ou non?
Je ne veux pas vérifier l'adresse e-mail comme côté client, je dois vérifier comme côté serveur.
J'ai trouvé de nombreuses questions comme celle-ci sur de nombreux forums, mais je n'obtiens aucune solution appropriée.
Mon code est -
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());
Il donne une sortie pour l'adresse email valide et invalide: - 250 OK id = 1TbWgN-0007oY-8r
Veuillez m'aider à résoudre le problème. Merci d'avance.
Merci à tous pour vos réponses.
Je suis en mesure de résoudre mon problème via la vérification des enregistrements MX .
J'ai utilisé ceci Link pour résoudre le problème. Que cela soit également utile pour quelqu'un.
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 + "'" );
}
Je vous remercie.
La seule façon de confirmer une adresse e-mail est de lui envoyer un e-mail et de demander à l'utilisateur de suivre un lien (unique) dans l'e-mail vers votre site Web.