Le Tutoriel de Java Commons Email

View more categories:

1- Introduction

Commons Email est une bibliothèque Java d' Apache concerné à Email. En fait pour travailler avec Java Email vous pouvez utiliser JavaMail API a été construit en JDK6. Commons Email est tout simplement pour vous aider à travailler avec JavaMail API plus facile, il ne remplace pas JavaMail API.
Comme Commons IO ne remplace pas JavaIO qui ne comprend que beaucoup de classe, la méthode utilité pour vous travailler avec Java IO plus facile, épargner le temps pour votre code.
 

2- Bibliothèque

Maven:
** pom.xml **
<!-- http://mvnrepository.com/artifact/org.apache.commons/commons-email -->

<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-email</artifactId>
  <version>1.3.2</version>
</dependency>

3- Créer Project

Créez un Maven Project utilisé pour tester les exemples dans ce document. Vous pouvez créer un projet normalement, puis télécharger la bibliothèque et déclarer leur position de façon normale.
Si vous utilisez  Commons Email d'un projet commun, vous devrez télécharger les bibliothèques nécessaires. Vous pouvez voir dans l'annexe à la fin du document.
C'est l'image Project a été créé
Déclarez la bibliothèque qui utilisera dans pom.xml
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
    http://maven.apache.org/xsd/maven-4.0.0.xsd">
    
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.o7planning</groupId>
    <artifactId>CommonsEmailTutorial</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <dependencies>
    
      <!-- http://mvnrepository.com/artifact/org.apache.commons/commons-email -->    
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-email</artifactId>
            <version>1.4</version>
        </dependency>
    </dependencies>
    
</project>

4- Note pour Gmail

Si vous souhaitez envoyer l'email à partir d'une application Java utilisant  Gmail, vous devez autoriser: des applications moins sécurisées:
Sur votre navigateur, connectez-vous à votre compte  Gmail et accédez au lien suivant:

Vous recevrez une alerte Google:

Certaines applications et périphériques utilisent une technologie de connexion moins sécurisée, ce qui rend votre compte plus vulnérable. Vous pouvez désactiver l'accès à ces applications, que nous recommandons, ou activer l'accès ( Turn On)si vous souhaitez les utiliser malgré les risques.

5- Par exemple, pour envoyer l'email simple

Tout d'abord, un exemple pour envoyer un simple e-mail avec un Commons-Email​​​​​​​
Constants.java
package org.o7planning.tutorial.commonsemail;

public class Constants {

 
  public static final String MY_EMAIL = "yourEmail@gmail.com";
 
  public static final String MY_PASSWORD ="your password";

   public static final String FRIEND_EMAIL = "friendEmail@gmail.com";  
}
SimpleTextEmail.java
package org.o7planning.tutorial.commonsemail;

import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.Email;
import org.apache.commons.mail.SimpleEmail;

public class SimpleTextEmail {

  public static void main(String[] args) {
      try {            
          Email email = new SimpleEmail();
         
          // Configuration
          email.setHostName("smtp.googlemail.com");
          email.setSmtpPort(465);
          email.setAuthenticator(new DefaultAuthenticator(Constants.MY_EMAIL,
                  Constants.MY_PASSWORD));
         
          // Required for gmail
          email.setSSLOnConnect(true);
         
          // Sender
          email.setFrom(Constants.MY_EMAIL);
         
          // Email title
          email.setSubject("Test Email");
         
          // Email message.
          email.setMsg("This is a test mail ... :-)");
         
          // Receiver
          email.addTo(Constants.FRIEND_EMAIL);            
          email.send();
          System.out.println("Sent!!");
      } catch (Exception e) {
          e.printStackTrace();
      }
  }
}
Les résultats lors de l'exécution d'exemple ci-dessus

6- Envoyer un E-mail avec pièce jointe

Par exemple, envoyer l'email avec un fichier joint sur le disque dur.
EmailWithAttachment.java
package org.o7planning.tutorial.commonsemail;

import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.MultiPartEmail;

public class EmailWithAttachment {

   public static void main(String[] args) {
       try {
           // Create the attachment
           EmailAttachment attachment = new EmailAttachment();
           attachment.setPath("C:/mypictures/map-vietnam.png");
           attachment.setDisposition(EmailAttachment.ATTACHMENT);
           attachment.setDescription("Vietnam Map");
           attachment.setName("Map");

           // Create the email message
           MultiPartEmail email = new MultiPartEmail();

           // Configuration
           email.setHostName("smtp.googlemail.com");
           email.setSmtpPort(465);
           email.setSSLOnConnect(true);
           email.setAuthenticator(new DefaultAuthenticator(Constants.MY_EMAIL,
                   Constants.MY_PASSWORD));

           email.setFrom(Constants.MY_EMAIL, "TRAN");
           email.addTo(Constants.FRIEND_EMAIL, "Hong");

           email.setSubject("The Map");
           email.setMsg("Here is the map you wanted");

           // Add the attachment
           email.attach(attachment);

           // Send the email
           email.send();

           System.out.println("Sent!");
       } catch (Exception e) {
           e.printStackTrace();
       }
   }

}
Résultats
Un autre exemple d'envoyer un email avec pièces jointes à partir d'un lien (lien)
EmailWithAttachment2.java
package org.o7planning.tutorial.commonsemail;

import java.net.URL;

import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.MultiPartEmail;

public class EmailWithAttachment2 {

  public static void main(String[] args) {
      try {
          // Create the attachment
          EmailAttachment attachment = new EmailAttachment();
          attachment.setURL(new URL(
                  "http://www.apache.org/images/asf_logo_wide.gif"));
          attachment.setDisposition(EmailAttachment.ATTACHMENT);
          attachment.setDescription("Apache logo");
          attachment.setName("Apache logo");

          // Create the email message
          MultiPartEmail email = new MultiPartEmail();
         
          // Configuration
          email.setHostName("smtp.googlemail.com");
          email.setSmtpPort(465);
          email.setSSLOnConnect(true);
          email.setAuthenticator(new DefaultAuthenticator(
                  Constants.MY_EMAIL, Constants.MY_PASSWORD));

         
          email.setFrom(Constants.MY_EMAIL, "TRAN");
          email.addTo(Constants.FRIEND_EMAIL, "Hong");

          email.setSubject("The logo");
          email.setMsg("Here is Apache's logo");

          // Add the attachment
          email.attach(attachment);

          // Send the email
          email.send();
         
          System.out.println("Sent!");
      } catch (Exception e) {
          e.printStackTrace();
      }
  }
}
Exécuter l'exemple:

7- Envoyer un email au format HTML

SendHtmlEmail.java
package org.o7planning.tutorial.commonsemail;

import java.net.URL;

import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.HtmlEmail;

public class SendHtmlEmail {
 
  public static void main(String[] args) {
      try {
          // Create the email message
          HtmlEmail email = new HtmlEmail();
         
         
          // Configuration
          email.setHostName("smtp.googlemail.com");
          email.setSmtpPort(465);
          email.setAuthenticator(new DefaultAuthenticator(
                  Constants.MY_EMAIL,Constants.MY_PASSWORD));
          email.setSSLOnConnect(true);
          email.setFrom(Constants.MY_EMAIL, "TRAN");

         
          // Receiver
          email.addTo(Constants.FRIEND_EMAIL);
         
          // Title
          email.setSubject("Test Sending HTML formatted email");

          // Embed the image and get the content id
          URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif");
          String cid = email.embed(url, "Apache logo");

          // Set the html message
          email.setHtmlMsg("<html><h2>The apache logo</h2>  <img src=\"cid:"
                  + cid + "\"></html>");

          // Set the alternative message
          email.setTextMsg("Your email client does not support HTML messages");

          // Send email
          email.send();

          System.out.println("Sent!!");
         
      } catch (Exception e) {
          e.printStackTrace();
      }
  }
}

8- Envoyer un email au format HTML, incorporer des photos

SendHtmlEmbedImageEmail.java
package org.o7planning.tutorial.commonsemail;

import java.net.URL;

import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.ImageHtmlEmail;
import org.apache.commons.mail.resolver.DataSourceUrlResolver;

public class SendHtmlEmbedImageEmail {
   public static void main(String[] args) {
       try {
           // Load your HTML email template
           // Here, Img has relative location (**)
           String htmlEmailTemplate = "<h2>Hello!</h2>"
                   +"This is Apache Logo <br/>"
                   +"<img src='proper/commons-email/images/commons-logo.png'/>";            

           // Create the email message
           ImageHtmlEmail email = new ImageHtmlEmail();
           

           // Configuration
           email.setHostName("smtp.googlemail.com");
           email.setSmtpPort(465);
           email.setAuthenticator(new DefaultAuthenticator(
                   Constants.MY_EMAIL, Constants.MY_PASSWORD));
           
           email.setSSLOnConnect(true);
           email.setFrom(Constants.MY_EMAIL, "TRAN");

           email.addTo(Constants.FRIEND_EMAIL);
           email.setSubject("Sending HTML formatted email with embedded images");

           // Define you base URL to resolve relative resource locations
           // (Example - Img you see above ** )
           URL url = new URL("http://commons.apache.org");
                   
           email.setDataSourceResolver(new DataSourceUrlResolver(url) );
           
           // Set the html message
           email.setHtmlMsg(htmlEmailTemplate);

           // Set the alternative message
           email.setTextMsg("Your email client does not support HTML messages");

           // Send the email
           email.send();

           System.out.println("Sent!!");
       } catch (Exception e) {
           e.printStackTrace();
       }
   }
}

9- Annexe: Download bibliothèque Commons Email

Si vous utilisez  Commons Email dans un projet commun, vous devrez télécharger les bibliothèques nécessaires.  Commons Email est basé sur l' API Email, vous devez télécharger 2 bibliothèques:
Ensuite  download bibliothèque  Email API:
Enfin , vous téléchargez  filchier jar.

View more categories: