API Javamail - Envoi d'e-mails à l'aide de Java à partir de Gmail SMTP

API Javamail - Envoi d'e-mails à l'aide de Java à partir de Gmail SMTP

API Javamail soutient le javamail (javax.poster) Interface pour envoyer des e-mails. Il fournit des classes pour l'envoi d'e-mails du serveur SMTP distant avec une authentification comme Gmail, SendGrid, etc.

Dans cet article, nous utilisons l'API Javamail pour envoyer des e-mails à l'aide du langage de programmation Java via un serveur SMTP distant. Cet exemple d'articles utilise le serveur SMTP Gmail comme serveur SMTP distant pour envoyer des e-mails.

Étape 1: Configuration de l'environnement Javamail

Nous devons d'abord télécharger un fichier jar contenant toutes les classes de Javax.poster. Télécharger le pot (poster.pot) Fichier à partir du site officiel d'Oracle.

Définissez maintenant le chemin de classe dans l'environnement système. Les utilisateurs de Windows s'assurent que vous avez configuré la variable de chemin pour votre installation Java.

Les fenêtres:

C:> Set ClassPath = Mail.pot;.; 

Linux:

# Exporter java_home = / opt / jdk1.8.0_05 / # Export Path = $ path: $ java_home / bin # export classpath = $ java_home / jre / lib / ext: $ java_home / lib / outils.pot: courrier.pot:. 

Étape 2: Écrivez un programme Java pour envoyer un e-mail

Créer un fichier Java Envoyer un mail.Java avec le contenu suivant. Dans ce script, vous devez modifier de nombreux paramètres selon votre configuration. Ce script peut être utilisé pour envoyer des e-mails via la connexion TLS ou SSL SMTP via des serveurs GMAIL SMTP.

Importer Java.user.Propriétés; Importer Javax.poster.Message; Importer Javax.poster.MessageingException; Importer Javax.poster.PasswordAuthentication; Importer Javax.poster.Session; Importer Javax.poster.Transport; Importer Javax.poster.l'Internet.Adresse Internet; Importer Javax.poster.l'Internet.MimeMessage; Importer Javax.poster.l'Internet.AddressException; classe publique Sendmail public static void main (String [] args) lève une exception Final String smtp_host = "smtp.Gmail.com "; chaîne finale smtp_username =" myuser @ gmail.com "; chaîne finale smtp_password =" _email_password_ "; chaîne finale smtp_connection =" tls "; // utilise 'tls' ou 'ssl' connexion final string toemail =" destinataire @ exemple.com "; chaîne finale fromEmail =" Sender @ Exemple.com "; propriétés accessoires = nouvelles propriétés (); accessoires.mettre ("courrier.smtp.auth "," true "); if (smtp_connection.égaux ("tls")) accessoires.mettre ("courrier.smtp.starttls.activer "," true "); accessoires.mettre ("courrier.smtp.port "," 587 "); else accessoires.mettre ("courrier.smtp.socketfactory.port "," 465 "); accessoires.mettre ("courrier.smtp.socketfactory.classe "," Javax.filet.SSL.Sslsocketfactory "); accessoires.mettre ("courrier.smtp.port "," 465 "); session session = session.getInstance (accessoires, nouveau Javax.poster.Authenticator () Protection PasswordAuthentication GetPasswordAuthentication () return new PasswordAuthentication (smtp_username, smtp_password); ); essayez message msg = new mimeMessage (session); msg.setFrom (new InternetAddress (fromEmail, "noreply")); msg.Addécipient (message.Récipiendaire.À, nouveau InternetAddress (Toemail, "M. Receveur ")); msg.setSubject ("Bienvenue à l'API Javamail"); msg.setText ("Test de l'API Javamail - Envoi d'exemple de messagerie via le serveur SMTP distant"); Transport.envoyer (msg); Système.dehors.println ("e-mail envoyé avec succès…"); catch (AddressException e) lancer une nouvelle RuntimeException (e); Catch (MessagedException e) Throw New RuntimeException (e);
123456789101112131415161718192021222324252627282930313233343536373839404142434577Importer Java.user.Propriétés; importer javax.poster.Message; Importer Javax.poster.MessageingException; Importer Javax.poster.PasswordAuthentication; Importer Javax.poster.Session; Importer Javax.poster.Transport; Importer Javax.poster.l'Internet.InternetAddress; Importer Javax.poster.l'Internet.MimeMessage; Importer Javax.poster.l'Internet.AddressException; classe publique Sendmail public static void main (String [] args) lève une exception Final String smtp_host = "smtp.Gmail.com "; chaîne finale smtp_username =" myuser @ gmail.com "; chaîne finale smtp_password =" _email_password_ "; chaîne finale smtp_connection =" tls "; // utilise 'tls' ou 'ssl' connexion final string toemail =" destinataire @ exemple.com "; chaîne finale fromEmail =" Sender @ Exemple.com "; propriétés accessoires = nouvelles propriétés (); accessoires.mettre ("courrier.smtp.auth "," true "); if (smtp_connection.égaux ("tls")) accessoires.mettre ("courrier.smtp.starttls.activer "," true "); accessoires.mettre ("courrier.smtp.port "," 587 "); else accessoires.mettre ("courrier.smtp.socketfactory.port "," 465 "); accessoires.mettre ("courrier.smtp.socketfactory.classe "," Javax.filet.SSL.Sslsocketfactory "); accessoires.mettre ("courrier.smtp.port "," 465 "); session session = session.getInstance (accessoires, nouveau Javax.poster.Authenticator () Protection PasswordAuthentication GetPasswordAuthentication () return new PasswordAuthentication (smtp_username, smtp_password); ); essayez message msg = new mimeMessage (session); msg.setFrom (new InternetAddress (fromEmail, "noreply")); msg.Addécipient (message.Récipiendaire.À, nouveau InternetAddress (Toemail, "M. Receveur ")); msg.setSubject ("Bienvenue à l'API Javamail"); msg.setText ("Test de l'API Javamail - Envoi d'exemple de messagerie via le serveur SMTP distant"); Transport.envoyer (msg); Système.dehors.println ("e-mail envoyé avec succès..."); catch (AddressException e) Throw New RuntimeException (E); Catch (MessageSingException E) Throw New RuntimeException (E);

Étape 3: Exécutez le programme pour envoyer un e-mail

Enfin, nous devons exécuter le programme Java pour envoyer un e-mail. Comme nous savons que cela se produit en deux étapes, d'abord pour compiler le programme et le deuxième pour l'exécuter.

# Javac Sendmail.java # java sendmail