API JavaMail - Envoi d'un e-mail HTML

Voici un exemple pour envoyer un e-mail HTML à partir de votre machine. Ici, nous avons utilisé le serveur JangoSMPT via lequel les e-mails sont envoyés à notre adresse e-mail de destination. La configuration est expliquée dans le chapitre Configuration de l' environnement .

Cet exemple est très similaire à l'envoi d'un simple e-mail, sauf que, ici, nous utilisons la méthode setContent () pour définir le contenu dont le deuxième argument est "text / html" pour spécifier que le contenu HTML est inclus dans le message. En utilisant cet exemple, vous pouvez envoyer un contenu HTML aussi volumineux que vous le souhaitez.

Pour envoyer un e-mail avec du contenu HTML, les étapes suivantes sont les suivantes:

  • Obtenez une session

  • Créez un objet MimeMessage par défaut et définissez De, À, Objet dans le message.

  • Définissez le message réel en utilisant la méthode setContent () comme ci-dessous:

    message.setContent("<h1>This is actual message embedded in 
       HTML tags</h1>", "text/html");
  • Envoyez le message à l'aide de l'objet Transport.

Créer une classe Java

Créer un fichier de classe Java SendHTMLEmail, dont le contenu est le suivant:

package com.tutorialspoint;

import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class SendHTMLEmail {
   public static void main(String[] args) {
      // Recipient's email ID needs to be mentioned.
      String to = "[email protected]";

      // Sender's email ID needs to be mentioned
      String from = "[email protected]";
      final String username = "manishaspatil";//change accordingly
      final String password = "******";//change accordingly

      // Assuming you are sending email through relay.jangosmtp.net
      String host = "relay.jangosmtp.net";

      Properties props = new Properties();
      props.put("mail.smtp.auth", "true");
      props.put("mail.smtp.starttls.enable", "true");
      props.put("mail.smtp.host", host);
      props.put("mail.smtp.port", "25");

      // Get the Session object.
      Session session = Session.getInstance(props,
         new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
               return new PasswordAuthentication(username, password);
            }
	});

      try {
            // Create a default MimeMessage object.
            Message message = new MimeMessage(session);

   	   // Set From: header field of the header.
	   message.setFrom(new InternetAddress(from));

	   // Set To: header field of the header.
	   message.setRecipients(Message.RecipientType.TO,
              InternetAddress.parse(to));

	   // Set Subject: header field
	   message.setSubject("Testing Subject");

	   // Send the actual HTML message, as big as you like
	   message.setContent(
              "<h1>This is actual message embedded in HTML tags</h1>",
             "text/html");

	   // Send message
	   Transport.send(message);

	   System.out.println("Sent message successfully....");

      } catch (MessagingException e) {
	   e.printStackTrace();
	   throw new RuntimeException(e);
      }
   }
}

Comme nous utilisons le serveur SMTP fourni par le fournisseur hôte JangoSMTP, nous devons authentifier le nom d'utilisateur et le mot de passe. La classe javax.mail.PasswordAuthentication est utilisée pour authentifier le mot de passe.

Compiler et exécuter

Maintenant que notre classe est prête, compilons la classe ci-dessus. J'ai enregistré la classe SendHTMLEmail.java dans le répertoire:/home/manisha/JavaMailAPIExercise. Nous aurions besoin des jars javax.mail.jar et activation.jar dans le classpath. Exécutez la commande ci-dessous pour compiler la classe (les deux fichiers JAR sont placés dans le répertoire / home / manisha /) à partir de l'invite de commande:

javac -cp /home/manisha/activation.jar:/home/manisha/javax.mail.jar: SendHTMLEmail.java

Maintenant que la classe est compilée, exécutez la commande ci-dessous pour exécuter:

java -cp /home/manisha/activation.jar:/home/manisha/javax.mail.jar: SendHTMLEmail

Vérifier la sortie

Vous devriez voir le message suivant sur la console de commande:

Sent message successfully....

Comme j'envoie un e-mail à mon adresse gmail via JangoSMTP, le courrier suivant sera reçu dans la boîte de réception de mon compte gmail: