API JavaMail - Serveur Gmail SMPT

Dans tous les chapitres précédents, nous avons utilisé le serveur JangoSMPT pour envoyer des e-mails. Dans ce chapitre, nous découvrirons le serveur SMPT fourni par Gmail. Gmail (entre autres) propose l'utilisation de leur serveur SMTP public gratuitement.

Les détails du serveur SMTP Gmail sont disponibles ici . Comme vous pouvez le voir dans les détails, nous pouvons utiliser une connexion TLS ou SSL pour envoyer des e-mails via le serveur SMTP de Gmail.

La procédure pour envoyer des e-mails à l'aide du serveur SMTP de Gmail est similaire à celle expliquée dans le chapitre Envoi d'e - mails , sauf que nous changerions le serveur hôte. Comme condition préalable, l'adresse e-mail de l'expéditeur doit être un compte Gmail actif. Essayons un exemple.

Créer une classe Java

Créer un fichier Java SendEmailUsingGMailSMTP, dont le contenu est comme ci-dessous:

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 SendEmailUsingGMailSMTP {
   public static void main(String[] args) {
      // Recipient's email ID needs to be mentioned.
      String to = "[email protected]";//change accordingly

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

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

      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", "587");

      // 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);
      }
   }
}

Ici, l'hôte est défini sur smtp.gmail.com et le port est défini sur 587 . Ici, nous avons activé la connexion TLS.

Compiler et exécuter

Maintenant que notre classe est prête, compilons la classe ci-dessus. J'ai enregistré la classe SendEmailUsingGMailSMTP.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: SendEmailUsingGMailSMTP.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: SendEmailUsingGMailSMTP

Vérifier la sortie

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

Sent message successfully....