API JavaMail - Envoi d'e-mails simples

Voici un exemple pour envoyer un simple email. 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 .

Pour envoyer un simple e-mail, 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 comme:

    message.setText("your text goes here");
  • Envoyez le message à l'aide de l'objet Transport.

Créer une classe Java

Créer un fichier de classe Java SendEmail, 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 SendEmail {
   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");
	
	   // Now set the actual message
	   message.setText("Hello, this is sample for to check send " +
		"email using JavaMailAPI ");

	   // Send message
	   Transport.send(message);

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

      } catch (MessagingException e) {
         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 SendEmail.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: SendEmail.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: SendEmail

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: