1. Des produits
  2.   E-mail
  3.   Java
  4.   JavaMail
 
  

Free Java API for Sending Simple & HTML-based Emails

Open Source Java Email Processing API to Create and Send Text and HTML-based Email Messages with Attachments, Embedded Images, SMTP, IMAP, POP3 Protocol Support abd Advanced Security support.

Qu’est‑ce que JavaMail ?

Dans le monde des applications d’entreprise et des systèmes automatisés, la capacité d’envoyer et de recevoir des e‑mails de façon programmatique n’est pas seulement une commodité — c’est une nécessité. De l’envoi de réinitialisations de mot de passe et de confirmations de commande au traitement des tickets de support entrants, l’intégration des e‑mails est une fonctionnalité centrale. Pour les développeurs Java, la pierre angulaire de cette fonctionnalité a été l’API JavaMail robuste et open source. Cette page produit complète explorera l’API JavaMail, ses fonctionnalités puissantes, et fournira des exemples de code pratiques pour vous aider à démarrer l’intégration des e‑mails dans vos applications Java.

L’API JavaMail est un cadre mature, open source, fourni par Oracle (anciennement Sun Microsystems), qui offre un cadre indépendant de la plateforme et du protocole pour créer des applications de messagerie et de courrier. C’est l’API standard pour la gestion des e‑mails dans l’écosystème Java. Elle abstrait les complexités des protocoles de messagerie sous‑jacents tels que SMTP, POP3 et IMAP, permettant aux développeurs de travailler avec une interface orientée objet propre. Plusieurs fonctionnalités importantes font partie de la bibliothèque, comme la création et l’envoi d’e‑mails HTML, l’ajout de pièces jointes, l’insertion d’images en ligne, le contenu multipart, le support d’authentification forte et de sécurité, le support des e‑mails basés sur dossiers, un meilleur support de recherche et de filtrage des e‑mails, la lecture des e‑mails via SMTP, etc.

Previous Next

Démarrer avec JavaMail

Tout d’abord, vous devez installer le JDK 1.6 ou une version supérieure. Vous devez ajouter la dépendance Maven suivante dans pom.xml.

Dépendance Maven

<dependency>
  <groupId>com.sun.mail</groupId>s;
  <artifactId>javax.mail</artifactId>
  <version>1.6.2</version>
</dependency>

Vous pouvez télécharger la bibliothèque directement depuis la page GitHub.

Envoi de messages e‑mail via la bibliothèque Java

La bibliothèque open source JavaMail inclut le support de la création et de l’envoi de messages e‑mail simples ainsi que de messages HTML à l’intérieur des applications Java. Les développeurs peuvent lire des e‑mails existants, ajouter des fichiers ainsi que des images en tant que pièces jointes, envoyer des e‑mails à plusieurs destinataires, ajouter des en‑têtes personnalisés, et bien plus encore. Vous devez définir les paramètres de connexion tels que l’hôte, le port et les indicateurs pour activer l’authentification et TLS. L’exemple suivant montre comment envoyer un e‑mail texte simple via un serveur SMTP (comme celui de Gmail) dans une application Java.

Comment envoyer un e‑mail texte simple via un serveur SMTP avec l’API Java ?


import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;

public class SimpleEmailSender {

    public static void main(String[] args) {
        // Sender's and recipient's email ID
        String from = "your.email@gmail.com";
        String to = "recipient.email@example.com";
        
        // SMTP server configuration (for Gmail)
        String host = "smtp.gmail.com";
        final String username = "your.email@gmail.com";
        final String password = "your-app-password"; // Use an App Password for Gmail

        // Setup mail server properties
        Properties properties = new Properties();
        properties.put("mail.smtp.auth", "true");
        properties.put("mail.smtp.starttls.enable", "true"); // Use TLS
        properties.put("mail.smtp.host", host);
        properties.put("mail.smtp.port", "587");

        // Get the Session object and pass username and password
        Session session = Session.getInstance(properties, 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
            message.setFrom(new InternetAddress(from));
            
            // Set To: header field
            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
            
            // Set Subject: header field
            message.setSubject("Hello from JavaMail API");
            
            // Set the actual message body
            message.setText("This is a test email sent programmatically using the JavaMail API.");

            // Send message
            Transport.send(message);
            System.out.println("Email sent successfully!");

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

Recherche et filtrage d’e‑mail via Java

La bibliothèque open source JavaMail inclut le support complet de la recherche de messages e‑mail dans un dossier selon divers critères (expéditeur, objet, date, indicateurs) dans les applications Java. Cela est particulièrement utile lors du développement de clients e‑mail ou d’automatisations. Vous pouvez également combiner plusieurs termes de recherche (AND, OR, NOT) via AndTerm, OrTerm, NotTerm. L’exemple suivant montre comment rechercher des messages provenant d’un expéditeur spécifique en utilisant les commandes Java.

Comment rechercher des messages d’un expéditeur spécifique dans les applications Java ?


Store store = session.getStore("imap");
store.connect("imap.example.com", username, password);

Folder inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);

// Search for messages from a specific sender
SearchTerm senderTerm = new FromStringTerm("alerts@example.com");
Message[] found = inbox.search(senderTerm);

for (Message m : found) {
    System.out.println("Subject: " + m.getSubject());
}

inbox.close(false);
store.close();

Support des protocoles SMTP, IMAP, POP3

JavaMail open source prend par défaut en charge les trois protocoles e‑mail les plus courants, tels que SMTP (Simple Mail Transfer Protocol) pour l’envoi de messages, POP3 (Post Office Protocol 3) pour la récupération simple d’e‑mails et IMAP (Internet Message Access Protocol) pour un accès e‑mail plus avancé (dossiers, récupération partielle). De plus, il supporte également les variantes sécurisées comme SMTPS, POP3S, IMAPS, et peut être étendu à des fournisseurs personnalisés.

Authentification avancée et sécurité via Java

JavaMail open source prend en charge la communication sécurisée avec les serveurs de messagerie, ce qui est crucial dans l’environnement actuel soucieux de la sécurité. La bibliothèque supporte TLS (Transport Layer Security) qui chiffre le canal de communication entre votre application et le serveur de messagerie. Elle supporte également SSL (Secure Sockets Layer), le prédécesseur de TLS, également utilisé pour établir une connexion sécurisée. La bibliothèque prend en charge l’authentification standard nom d’utilisateur/mot de passe pour se connecter aux serveurs qui exigent une connexion.

 Français