jeudi 7 novembre 2013

Envoi des e-mails via SMTP Gmail

Je vous présente ici deux exemples pour vous montrer comment utiliser l'API JavaMail pour envoyer un mail via le serveur SMTP Gmail, en utilisant à la fois une connexion TLS et SSL.

Alors pour exécuter ces exemples, vous devez obtenir deux bibliothèques suivantes «mail.jar» et «activation.jar». Avec maven vous devez ajouter la dépendance ci-dessous à votre projet maven.

<dependency> 
     <groupId>javax.mail</groupId> 
     <artifactId>mail</artifactId> 
     <version>1.4</version> 
</dependency> 

Les instructions de configuration standard de google:

Outgoing Mail (SMTP) Server - requires TLS or SSL:
smtp.gmail.com
Use Authentication: Yes
Port for TLS/STARTTLS: 587
Port for SSL: 465

Et pour plus de détails : https://support.google.com/mail/answer/13287?hl=en

1. SMTP GMail via TLS

Envoyer un e-mail via le serveur SMTP de Gmail en utilisant la connexion TLS.

package com.saou.demo;

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 EnvoiMailTLS {
 
  public static void main(String[] args) {
 
  final String username = "username@gmail.com";
  final String password = "password";
 
  Properties props = new Properties();
  props.put("mail.smtp.auth", "true");
  props.put("mail.smtp.starttls.enable", "true");
  props.put("mail.smtp.host", "smtp.gmail.com");
  props.put("mail.smtp.port", "587");
 
  Session session = Session.getInstance(props,
    new javax.mail.Authenticator() {
      protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(username, password);
      }
  });
  
  try {
 
    Message message = new MimeMessage(session);
    message.setFrom(new InternetAddress("de-email@gmail.com"));
    message.setRecipients(Message.RecipientType.TO       
                     InternetAddress.parse("a-email@gmail.com"));
    message.setSubject("Objet Test");
    message.setText("E-mail de test pour l'exemple de l'API JavaMail. "
      + "<br/><br/>Cordialement, <br/>Rachid SAOU");
 
    Transport.send(message);
 
    System.out.println("Terminé");
 
  } catch (MessagingException e) {
    throw new RuntimeException(e);
  }
  }
}

Port for SSL: 465

2. SMTP GMail via SSL

Envoyer un e-mail via le serveur SMTP de Gmail en utilisant la connexion SSL.

package com.saou.demo;

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 EnvoiMailSSL {
 
  public static void main(String[] args) {
 
  final String username = "username@gmail.com";
  final String password = "password";
 
  Properties props = new Properties();     
  props.put("mail.smtp.host", "smtp.gmail.com");   
  props.put("mail.smtp.socketFactory.port", "465");
  props.put("mail.smtp.socketFactory.class",
                  "javax.net.ssl.SSLSocketFactory");   
  props.put("mail.smtp.auth", "true"); 
  props.put("mail.smtp.port", "465");
 
  Session session = Session.getInstance(props,
    new javax.mail.Authenticator() {
      protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(username, password);
      }
  });
  
  try {
 
    Message message = new MimeMessage(session);
    message.setFrom(new InternetAddress("de-email@gmail.com"));
    message.setRecipients(Message.RecipientType.TO      
                    InternetAddress.parse("a-email@gmail.com"));
    message.setSubject("Objet Test");
    message.setText("E-mail de test pour l'exemple de l'API JavaMail. "
      + "<br/><br/>Cordialement, <br/>Rachid SAOU");
 
    Transport.send(message);
 
    System.out.println("Terminé");
 
  } catch (MessagingException e) {
    throw new RuntimeException(e);
  }
  }
}


 


Aucun commentaire:

Enregistrer un commentaire