logo

Envoi d'e-mails en Java

  1. Envoi d'e-mails à l'aide de l'API JavaMail
  2. Étapes pour envoyer un e-mail à l'aide de l'API JavaMail
    1. Récupérer l'objet de session
    2. Composez le message
    3. envoyer le message
  3. Exemple simple d'envoi d'e-mails à l'aide de l'API JavaMail
  4. Exemple d'envoi d'e-mails à l'aide de l'API JavaMail via le serveur SMTP fourni par le fournisseur d'hébergement

Il existe différentes manières d'envoyer des e-mails à l'aide de l'API JavaMail. Pour cela, vous devez disposer d'un serveur SMTP chargé d'envoyer les mails.

Vous pouvez utiliser l'une des techniques suivantes pour obtenir le serveur SMTP :

  • Installez et utilisez n'importe quel serveur SMTP tel que le serveur Postcast, le serveur Apache James, le serveur cmail, etc. (ou)
  • Utilisez le serveur SMTP fourni par le fournisseur d'hébergement, par ex. mon serveur SMTP est mail.javatpoint.com (ou)
  • Utilisez le serveur SMTP fourni par d'autres sociétés, par ex. Gmail, etc.

Ici, nous allons apprendre ci-dessus trois approches pour envoyer des e-mails à l'aide de l'API javamail. Mais nous devrions apprendre les étapes de base pour envoyer des e-mails à partir d’une application Java.


Étapes pour envoyer un e-mail à l'aide de l'API JavaMail

Il y a trois étapes suivantes pour envoyer un e-mail à l'aide de JavaMail. Ils sont les suivants :

    Récupérer l'objet de sessionqui stocke toutes les informations de l'hôte comme le nom d'hôte, le nom d'utilisateur, le mot de passe, etc.composer le message envoyer le message


1) Obtenez l'objet de session

Le classe javax.mail.Session fournit deux méthodes pour obtenir l'objet de la session, la méthode Session.getDefaultInstance() et la méthode Session.getInstance(). Vous pouvez utiliser n'importe quelle méthode pour obtenir l'objet de session.

Méthode de classe Session

Non.MéthodeDescription
1Session statique publique getDefaultInstance (accessoires de propriétés)renvoie la session par défaut.
2Session statique publique getDefaultInstance (accessoires de propriétés, authentification de l'authentificateur)renvoie la session par défaut.
3Session statique publique getInstance (accessoires de propriétés)renvoie la nouvelle session.
4Session statique publique getInstance (accessoires de propriétés, authentification de l'authentificateur)renvoie la nouvelle session.

Exemple de méthode getDefaultInstance()

 Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getDefaultInstance(properties,null); 

Exemple de méthode getInstance()

 Properties properties=new Properties(); //fill all the information like host name etc. Session session=Session.getInstance(properties,null); 

2) Composez le message

La classe javax.mail.Message fournit des méthodes pour composer le message. Mais il s’agit d’une classe abstraite, donc sa sous-classe javax.mail.internet.MimeMessage est principalement utilisée.
Pour créer le message, vous devez transmettre l'objet de session dans le constructeur de classe MimeMessage. Par exemple:
 MimeMessage message=new MimeMessage(session); 
L'objet message a maintenant été créé, mais pour stocker des informations dans cet objet, la classe MimeMessage fournit de nombreuses méthodes. Voyons les méthodes fournies par la classe MimeMessage :

Méthodes couramment utilisées de la classe MimeMessage

Non.MéthodeDescription
1public void setFrom (adresse adresse)est utilisé pour définir le champ d'en-tête From.
2public void addRecipient (type Message.RecipientType, adresse adresse)est utilisé pour ajouter l'adresse donnée au type de destinataire.
3public void addRecipients (type Message.RecipientType, adresses Address[])est utilisé pour ajouter les adresses données au type de destinataire.
4public void setSubject (Sujet de chaîne)est utilisé pour définir le champ d’en-tête du sujet.
5public void setText (message texte de chaîne)est utilisé pour définir le texte comme contenu du message en utilisant le type texte/plain MIME.
6public void setContent (Object msg, String contentType)est utilisé pour définir le contenu comme contenu du message en utilisant le type MIME donné.

Exemple pour composer le message :

 MimeMessage message=new MimeMessage(session); message.setFrom(new InternetAddress('[email protected]')); message.addRecipient(Message.RecipientType.To, new InternetAddress('[email protected]')); message.setHeader('Hi, everyone'); message.setText('Hi, This mail is to inform you...'); 

3) Envoyez le message

La classe javax.mail.Transport fournit une méthode pour envoyer le message.

Méthodes couramment utilisées de la classe Transport

Non.MéthodeDescription
1envoi public statique vide (message)est utilisé pour envoyer le message.
2envoi public statique vide (message, adresse adresse [])est utilisé pour envoyer le message aux adresses indiquées.

Exemple pour envoyer le message :

 Transport.send(message); 

Exemple simple d'envoi d'e-mail en Java

téléchargez ces fichiers jar ou accédez au site Oracle pour télécharger la dernière version.
Dans cet exemple, nous allons apprendre comment envoyer des emails par le serveur SMTP installé sur la machine, par ex. Serveur Postcast, serveur Apache James, serveur Cmail, etc. Si vous souhaitez envoyer des e-mails en utilisant votre serveur SMTP fourni par le fournisseur d'hébergement, consultez l'exemple après celui-ci.
Pour envoyer l'e-mail à l'aide de l'API JavaMail, vous devez charger les deux fichiers jar :
mail.jar
activation.jar
 import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendEmail { public static void main(String [] args){ String to = '[email protected]';//change accordingly String from = '[email protected]';change accordingly String host = 'localhost';//or IP address //Get the session object Properties properties = System.getProperties(); properties.setProperty('mail.smtp.host', host); Session session = Session.getDefaultInstance(properties); //compose the message try{ MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); message.setSubject('Ping'); message.setText('Hello, this is example of sending email '); // Send message Transport.send(message); System.out.println('message sent successfully....'); }catch (MessagingException mex) {mex.printStackTrace();} } } 
téléchargez cet exemple pour envoyer un e-mail

Dans cet exemple, nous allons apprendre comment envoyer des emails par le serveur SMTP installé sur la machine, par ex. Serveur Postcast, serveur Apache James, serveur Cmail, etc. Si vous souhaitez envoyer des e-mails en utilisant votre serveur SMTP fourni par le fournisseur d'hébergement, consultez l'exemple après celui-ci.

Pour exécuter cet exemple, vous devez charger deux fichiers jar. Il existe 4 façons de charger le fichier jar. L'un des moyens consiste à définir le chemin de classe. Voyons comment exécuter cet exemple :

Charger le fichier jarc:> set classpath=mail.jar;activation.jar;.;
compiler le fichier sourcec:> javac SendEmail.java
exécuté parc:> java Envoyer un e-mail

Exemple d'envoi d'e-mails en Java via le serveur SMTP fourni par le fournisseur d'hébergement

téléchargez ces fichiers jar ou accédez au site Oracle pour télécharger la dernière version.
Si vous utilisez le serveur SMTP fourni par le fournisseur d'hébergement, par ex. mail.javatpoint.com , vous devez authentifier le nom d'utilisateur et le mot de passe. La classe javax.mail.PasswordAuthentication est utilisée pour authentifier le mot de passe.
Si vous envoyez l'e-mail à l'aide de l'API JavaMail, chargez les deux fichiers jar :
mail.jar
activation.jar
 import java.util.Properties; import javax.mail.*; import javax.mail.internet.*; public class SendMailBySite { public static void main(String[] args) { String host='mail.javatpoint.com'; final String user='[email protected]';//change accordingly final String password='xxxxx';//change accordingly String to='[email protected]';//change accordingly //Get the session object Properties props = new Properties(); props.put('mail.smtp.host',host); props.put('mail.smtp.auth', 'true'); Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(user,password); } }); //Compose the message try { MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(user)); message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); message.setSubject('javatpoint'); message.setText('This is simple program of sending email using JavaMail API'); //send the message Transport.send(message); System.out.println('message sent successfully...'); } catch (MessagingException e) {e.printStackTrace();} } } 
téléchargez cet exemple pour envoyer un e-mail

Comme vous pouvez le voir dans l'exemple ci-dessus, l'ID utilisateur et le mot de passe doivent être authentifiés. Comme l'illustre ce programme, vous pouvez facilement envoyer des e-mails. Modifiez le nom d'utilisateur et le mot de passe en conséquence. Voyons comment l'exécuter à nouveau par une technique simple :

Charger le fichier jarc:> set classpath=mail.jar;activation.jar;.;
compiler le fichier sourcec:> javac SendMailBySite.java
exécuté parc:> java SendMailBySite