Guide Pratique — JavaMail avec Java 8 / NetBeans 8 / GlassFish 4 — De A à Z
GUIDE PRATIQUE
Implémenter JavaMail dans une
Application JEE
De A à Z — Étape par Étape
Java 8 • NetBeans 8 • GlassFish 4 • JavaMail 1.5 ([Link].*)
Application de démonstration complète : Formulaire de contact avec envoi d’e-mail
📋 Ce que vous allez construire : Une application JEE déployée sur GlassFish 4 qui permet d’envoyer
un e-mail réel via un formulaire web JSP. Chaque étape est détaillée avec captures d’écran décrites et
code complet prêt à copier.
PLAN DU GUIDE
É
t
a
Prérequis et Installation de l’environnement
p
e
1
É
t
a
Création du projet Java EE dans NetBeans 8
p
e
2
É
t
a
Configuration de la dépendance JavaMail ([Link])
p
e
3
É
t
a
Configuration de la ressource JavaMail dans GlassFish 4
p
e
4
É
t
a
Création de la couche métier : EJB MailService
p
e
5
É
t
a
Création de la couche présentation : Servlet + JSP
p
e
6
É Déploiement sur GlassFish 4 depuis NetBeans 8
t
JavaMail 1.5 • [Link].* • Java EE 7 • GlassFish 4 • NetBeans 8
Guide Pratique — JavaMail avec Java 8 / NetBeans 8 / GlassFish 4 — De A à Z
a
p
e
7
É
t
a
Test et vérification de l’envoi d’e-mail
p
e
8
É
t
a
Améliorations : e-mail HTML + pièce jointe
p
e
9
A
n
n
Résolution des erreurs courantes (Troubleshooting)
e
x
e
JavaMail 1.5 • [Link].* • Java EE 7 • GlassFish 4 • NetBeans 8
Guide Pratique — JavaMail avec Java 8 / NetBeans 8 / GlassFish 4 — De A à Z
Étape 1 — Prérequis et Installation de l’Environnement
Avant d’écrire la moindre ligne de code, vous devez disposer des outils suivants correctement installés sur
votre machine. Cette étape décrit chaque installation dans l’ordre.
1.1 Logiciels à installer
Logiciel Version requise Lien de téléchargement
JDK (Java SE) 8 (1.8.x) [Link]/java/technologies/downloads/
NetBeans IDE 8.2 (Java EE) [Link]/dist/netbeans/
GlassFish Server 4.1.x [Link] (intégré à NetBeans 8.2 Java EE)
Intégré dans NetBeans 8, aucune installation
Apache Maven 3.x (intégré NB8)
séparée
⚠️Important : Télécharger NetBeans 8.2 dans la version "Java EE" (et non "Java SE") car elle inclut
GlassFish 4 et le support des EJBs, Servlets et CDI.
1.2 Installation du JDK 8
1. Télécharger le JDK 8 depuis le site Oracle (fichier .exe sous Windows, .dmg sous macOS).
2. Exécuter l’installateur et suivre les instructions. Le chemin d’installation par défaut est : C:\Program
Files\Java\jdk1.8.0_xxx
3. Définir la variable d’environnement JAVA_HOME :
Windows : Panneau de configuration > Système > Variables d'environnement
Nouvelle variable système : JAVA_HOME = C:\Program Files\Java\jdk1.8.0_xxx
Ajouter dans PATH : %JAVA_HOME%\bin
4. Vérifier l’installation en ouvrant une invite de commandes (cmd) :
java -version
javac -version
Résultat attendu :
java version "1.8.0_xxx"
javac 1.8.0_xxx
1.3 Installation de NetBeans 8.2
5. Télécharger NetBeans 8.2 version "Java EE" depuis le site [Link].
6. Exécuter l’installateur. Il détecte automatiquement le JDK 8 installé.
7. Lors de l’installation, cocher "GlassFish Server Open Source Edition 4.1.1" lorsque proposé.
8. Terminer l’installation et lancer NetBeans.
✅ Vérification : Au lancement de NetBeans, aller dans Tools > Servers. Vous devez voir "GlassFish
Server 4.1.1" dans la liste. S'il n'apparaît pas, cliquer "Add Server" et pointer vers le dossier d'installation
de GlassFish.
JavaMail 1.5 • [Link].* • Java EE 7 • GlassFish 4 • NetBeans 8
Guide Pratique — JavaMail avec Java 8 / NetBeans 8 / GlassFish 4 — De A à Z
1.4 Compte e-mail pour les tests
Pour envoyer de vrais e-mails durant les tests, vous avez besoin d’un compte SMTP. Les options les plus
simples sont :
Fournisseur Serveur SMTP Port Remarque
Activer "Accès applications moins
Gmail [Link] 587 (TLS)
sécurisées"
smtp.office365.c
Outlook/Hotmail 587 (TLS) Compte Microsoft requis
om
Service gratuit dédié aux tests,
Mailtrap (test) [Link] 2525
aucun vrai mail envoyé
💡 Conseil : Pour les tests, utiliser Mailtrap ([Link]) : c'est un serveur SMTP "bac à sable" qui capture
les e-mails sans les envoyer réellement. Inscrivez-vous gratuitement et récupérez vos identifiants SMTP.
JavaMail 1.5 • [Link].* • Java EE 7 • GlassFish 4 • NetBeans 8
Guide Pratique — JavaMail avec Java 8 / NetBeans 8 / GlassFish 4 — De A à Z
Étape 2 — Création du Projet Java EE dans NetBeans 8
Nous allons créer un projet de type "Java Web Application" avec Maven, ce qui nous donnera une
structure propre et une gestion simplifiée des dépendances.
2.1 Nouveau projet Maven Web
9. Dans NetBeans : File > New Project
10. Catégorie : sélectionner "Maven"
11. Type de projet : sélectionner "Web Application" → cliquer Next
12. Remplir les champs comme suit :
Champ Valeur à saisir
Project Name DemoJavaMail
Group Id [Link]
Artifact Id DemoJavaMail
Version 1.0-SNAPSHOT
Package [Link]
13. Cliquer Next puis sélectionner le serveur GlassFish Server 4.1.1
14. Java EE Version : sélectionner Java EE 7
15. Cliquer Finish. NetBeans crée automatiquement la structure du projet.
2.2 Structure du projet généré
Après la création, vous obtenez la structure suivante dans l’onglet "Projects" de NetBeans :
DemoJavaMail/
├── Source Packages/
│ └── [Link]/ <- vos classes Java
├── Web Pages/
│ ├── WEB-INF/
│ │ └── [Link] <- configuration web
│ └── [Link] <- page d'accueil
└── [Link] <- dépendances Maven
💡 Conseil : Si l'onglet "Projects" n'est pas visible, allez dans Window > Projects pour l'afficher.
JavaMail 1.5 • [Link].* • Java EE 7 • GlassFish 4 • NetBeans 8
Guide Pratique — JavaMail avec Java 8 / NetBeans 8 / GlassFish 4 — De A à Z
Étape 3 — Configuration des Dépendances ([Link])
Le fichier [Link] définit toutes les dépendances du projet. Nous allons le modifier pour ajouter Java EE
7 et JavaMail 1.5.
3.1 Ouvrir le fichier [Link]
16. Dans l’onglet Projects, double-cliquer sur [Link] (visible dans la racine du projet).
17. NetBeans ouvre l’éditeur XML. Remplacer intégralement le contenu par le code suivant :
3.2 Contenu complet du [Link]
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="[Link]
xmlns:xsi="[Link]
xsi:schemaLocation="[Link]
[Link]
<modelVersion>4.0.0</modelVersion>
<groupId>[Link]</groupId>
<artifactId>DemoJavaMail</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>DemoJavaMail</name>
<properties>
<[Link]>UTF-8</[Link]>
<[Link]>1.8</[Link]>
<[Link]>1.8</[Link]>
</properties>
<dependencies>
<!-- Java EE 7 API (fourni par GlassFish 4, scope provided) -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<!-- JavaMail 1.5 : package [Link].* -->
<!-- scope provided : GlassFish 4 inclut déjà JavaMail -->
<dependency>
<groupId>[Link]</groupId>
<artifactId>[Link]</artifactId>
<version>1.5.6</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>[Link]</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
<configuration>
JavaMail 1.5 • [Link].* • Java EE 7 • GlassFish 4 • NetBeans 8
Guide Pratique — JavaMail avec Java 8 / NetBeans 8 / GlassFish 4 — De A à Z
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
</project>
18. Après modification, faire clic droit sur le projet > Reload POM pour que NetBeans télécharge les
dépendances.
💡 Pourquoi scope provided ? GlassFish 4 embarque déjà JavaMail et Java EE 7 dans ses librairies
internes. En déclarant 'provided', on dit à Maven : ces jars sont disponibles au moment de la compilation,
mais ne pas les inclure dans le fichier .war final.
JavaMail 1.5 • [Link].* • Java EE 7 • GlassFish 4 • NetBeans 8
Guide Pratique — JavaMail avec Java 8 / NetBeans 8 / GlassFish 4 — De A à Z
Étape 4 — Configuration de JavaMail dans GlassFish 4
GlassFish 4 doit connaître votre serveur SMTP pour envoyer les e-mails. Cette configuration se fait une
seule fois via l’Administration Console (interface web de GlassFish).
4.1 Démarrer GlassFish depuis NetBeans
19. Dans NetBeans, ouvrir l’onglet Services (Window > Services).
20. Déplier Servers.
21. Faire clic droit sur GlassFish Server 4.1.1 > Start
22. Attendre que le statut passe à "Running" (icône verte).
💡 Astuce : La première fois, GlassFish peut prendre 20 à 30 secondes à démarrer. Vous pouvez consulter
les logs dans l'onglet GlassFish en bas de NetBeans.
4.2 Accéder à l’Administration Console
23. Une fois GlassFish démarré, ouvrir un navigateur web.
24. Aller à l’adresse : [Link]
25. Identifiants par défaut : login admin, mot de passe admin (ou vide).
26. La page d’accueil de l’Administration Console de GlassFish s’affiche.
4.3 Créer la ressource JavaMail Session
27. Dans le menu de gauche, cliquer sur Resources
28. Puis cliquer sur JavaMail Sessions
29. Cliquer sur le bouton New pour créer une nouvelle session mail.
30. Remplir le formulaire avec les valeurs suivantes :
Champ GlassFish Valeur à saisir
JNDI Name mail/DemoMailSession
Mail Host [Link]
Default User [Link]@[Link]
Default Sender Address [Link]@[Link]
Transport Protocol smtp
Debug false
31. Faire défiler la page vers le bas jusqu’à la section "Additional Properties" et ajouter ces
propriétés :
Nom de la propriété Valeur
[Link] 587
[Link] true
[Link] true
JavaMail 1.5 • [Link].* • Java EE 7 • GlassFish 4 • NetBeans 8
Guide Pratique — JavaMail avec Java 8 / NetBeans 8 / GlassFish 4 — De A à Z
[Link] votre_mot_de_passe
32. Cliquer sur OK pour enregistrer la session mail.
📌 Note Gmail : Pour Gmail, vous devez activer l'accès aux applications moins sécurisées dans les
paramètres de votre compte Google, ou créer un "Mot de passe d'application" si la validation en 2 étapes
est activée.
💡 Avec Mailtrap (recommandé pour les tests) : Host : [Link], Port : 2525, User et Password :
valeurs fournies par Mailtrap après inscription.
JavaMail 1.5 • [Link].* • Java EE 7 • GlassFish 4 • NetBeans 8
Guide Pratique — JavaMail avec Java 8 / NetBeans 8 / GlassFish 4 — De A à Z
Étape 5 — Création du Service Mail (EJB Stateless)
Nous allons créer l’EJB qui prend en charge l’envoi des e-mails. Il injecte la Session JavaMail configurée
dans GlassFish et expose une méthode d’envoi.
5.1 Créer la classe MailService
33. Dans l’onglet Projects, faire clic droit sur Source Packages > [Link] > New > Java
Class
34. Nom de la classe : MailService
35. Cliquer Finish
36. Remplacer intégralement le contenu du fichier par le code suivant :
5.2 Code complet de [Link]
package [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
/**
* EJB Stateless chargé de l'envoi des e-mails via JavaMail.
* La Session JavaMail est injectée depuis GlassFish via JNDI.
*/
@Stateless
public class MailService {
// Injection de la Session JavaMail configurée dans GlassFish
// Le nom JNDI correspond à celui saisi dans l'Admin Console
@Resource(name = "mail/DemoMailSession")
private Session mailSession;
/**
* Envoie un e-mail en texte brut.
*
* @param destinataire Adresse e-mail du destinataire
* @param sujet Sujet de l'e-mail
* @param corps Corps du message (texte brut)
* @throws RuntimeException si l'envoi échoue
*/
public void envoyerEmail(String destinataire, String sujet, String corps) {
try {
// 1. Créer le message
Message message = new MimeMessage(mailSession);
// 2. Définir l'expéditeur
[Link](new InternetAddress("[Link]@[Link]"));
// 3. Définir le destinataire
[Link](
[Link],
JavaMail 1.5 • [Link].* • Java EE 7 • GlassFish 4 • NetBeans 8
Guide Pratique — JavaMail avec Java 8 / NetBeans 8 / GlassFish 4 — De A à Z
new InternetAddress(destinataire)
);
// 4. Définir le sujet
[Link](sujet);
// 5. Définir le corps du message
[Link](corps);
// 6. Envoyer
[Link](message);
[Link]("[MailService] E-mail envoyé à : " + destinataire);
} catch (MessagingException e) {
[Link]("[MailService] Erreur : " + [Link]());
throw new RuntimeException("Echec de l'envoi de l'e-mail", e);
}
}
}
💡 Rappel : Remplacer '[Link]@[Link]' par votre vraie adresse e-mail qui correspond à celle
configurée dans GlassFish à l'étape 4.
JavaMail 1.5 • [Link].* • Java EE 7 • GlassFish 4 • NetBeans 8
Guide Pratique — JavaMail avec Java 8 / NetBeans 8 / GlassFish 4 — De A à Z
Étape 6 — Couche Présentation : Servlet + Pages JSP
Nous allons créer un formulaire de contact (page JSP) et un Servlet qui reçoit les données du formulaire
et appelle le service d’envoi.
6.1 Créer le formulaire JSP ([Link])
37. Dans l’onglet Projects, faire clic droit sur Web Pages > New > JSP
38. Nom du fichier : contact (NetBeans ajoutera .jsp automatiquement)
39. Cliquer Finish et remplacer le contenu par :
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Formulaire de Contact - Démo JavaMail</title>
<style>
body { font-family: Arial, sans-serif; max-width: 600px;
margin: 40px auto; padding: 0 20px; }
h1 { color: #1F4E79; }
label { display: block; margin-top: 15px; font-weight: bold; }
input, textarea { width: 100%; padding: 8px;
border: 1px solid #ccc; border-radius: 4px;
box-sizing: border-box; }
textarea { height: 120px; resize: vertical; }
button { margin-top: 20px; padding: 10px 30px;
background: #2E75B6; color: white;
border: none; border-radius: 4px; cursor: pointer; }
button:hover { background: #1F4E79; }
.msg-ok { color: green; padding: 10px; background: #e8f5e9; }
.msg-err { color: red; padding: 10px; background: #fdecea; }
</style>
</head>
<body>
<h1>Formulaire de Contact</h1>
<p>Démo JavaMail — Java 8 / NetBeans 8 / GlassFish 4</p>
<!-- Affichage du message de retour du Servlet -->
<%
String message = (String) [Link]("message");
String erreur = (String) [Link]("erreur");
if (message != null) { %>
<p class="msg-ok">✅ <%= message %></p>
<% } %>
<% if (erreur != null) { %>
<p class="msg-err">❌ <%= erreur %></p>
<% } %>
<!-- Formulaire d'envoi -->
<form method="POST" action="EnvoyerMailServlet">
<label for="destinataire">Adresse e-mail destinataire :</label>
<input type="email" id="destinataire" name="destinataire"
placeholder="exemple@[Link]" required>
<label for="sujet">Sujet :</label>
<input type="text" id="sujet" name="sujet"
placeholder="Objet de votre message" required>
JavaMail 1.5 • [Link].* • Java EE 7 • GlassFish 4 • NetBeans 8
Guide Pratique — JavaMail avec Java 8 / NetBeans 8 / GlassFish 4 — De A à Z
<label for="corps">Message :</label>
<textarea id="corps" name="corps"
placeholder="Votre message ici..." required></textarea>
<button type="submit">Envoyer l'e-mail</button>
</form>
</body>
</html>
6.2 Créer le Servlet ([Link])
40. Faire clic droit sur Source Packages > [Link] > New > Servlet
41. Nom de la classe : EnvoyerMailServlet
42. Cliquer Next, vérifier que "Add information to deployment descriptor ([Link])" est coché.
43. Cliquer Finish et remplacer le contenu par :
package [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
/**
* Servlet qui récupère les données du formulaire JSP
* et délègue l'envoi de l'e-mail au MailService (EJB).
*/
@WebServlet("/EnvoyerMailServlet")
public class EnvoyerMailServlet extends HttpServlet {
// Injection de l'EJB MailService par le conteneur Java EE
@EJB
private MailService mailService;
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// 1. Récupérer les paramètres du formulaire
String destinataire = [Link]("destinataire");
String sujet = [Link]("sujet");
String corps = [Link]("corps");
// 2. Validation basique
if (destinataire == null || [Link]().isEmpty()
|| sujet == null || corps == null) {
[Link]("erreur",
"Tous les champs sont obligatoires.");
[Link]("[Link]")
.forward(request, response);
return;
}
// 3. Appel du service d'envoi
try {
[Link](
[Link](),
JavaMail 1.5 • [Link].* • Java EE 7 • GlassFish 4 • NetBeans 8
Guide Pratique — JavaMail avec Java 8 / NetBeans 8 / GlassFish 4 — De A à Z
[Link](),
[Link]()
);
// 4. Succès : message de confirmation
[Link]("message",
"E-mail envoyé avec succès à : " + destinataire);
} catch (RuntimeException e) {
// 5. Erreur : message d'erreur
[Link]("erreur",
"Erreur lors de l'envoi : " + [Link]());
}
// 6. Redirection vers le formulaire avec le message
[Link]("[Link]")
.forward(request, response);
}
}
JavaMail 1.5 • [Link].* • Java EE 7 • GlassFish 4 • NetBeans 8
Guide Pratique — JavaMail avec Java 8 / NetBeans 8 / GlassFish 4 — De A à Z
Étape 7 — Déploiement sur GlassFish 4 depuis NetBeans 8
Le projet est prêt. Nous allons maintenant le compiler, construire le fichier WAR et le déployer sur
GlassFish 4 directement depuis NetBeans.
7.1 Vérifier la structure finale du projet
Avant de déployer, vérifier que vous avez bien ces fichiers :
DemoJavaMail/
├── Source Packages/
│ └── [Link]/
│ ├── [Link] <- EJB d'envoi
│ └── [Link] <- Servlet
├── Web Pages/
│ ├── WEB-INF/
│ │ └── [Link]
│ └── [Link] <- Formulaire
└── [Link]
7.2 Nettoyer et construire le projet
44. Dans NetBeans, faire clic droit sur le projet DemoJavaMail > Clean and Build
45. NetBeans compile le code, télécharge les dépendances Maven et génère le fichier DemoJavaMail-
[Link]
46. Vérifier dans l’onglet Output qu’il n’y a pas d’erreurs de compilation. Vous devez voir : BUILD
SUCCESS
7.3 Déployer sur GlassFish
47. S’assurer que GlassFish est démarré (onglet Services, icône verte).
48. Faire clic droit sur le projet DemoJavaMail > Deploy
49. NetBeans déploie automatiquement l’application sur GlassFish.
50. Dans l’onglet Output, attendre le message : Deployment of DemoJavaMail done
💡 Astuce : Si le déploiement échoue, vérifier les logs GlassFish en cliquant sur l'onglet GlassFish en bas
de NetBeans. Les erreurs sont généralement dues à un nom JNDI incorrect ou une dépendance
manquante.
7.4 Vérifier le déploiement dans l’Admin Console
51. Ouvrir [Link] dans le navigateur.
52. Aller dans Applications dans le menu de gauche.
53. Vous devez voir DemoJavaMail dans la liste avec le statut "Enabled".
JavaMail 1.5 • [Link].* • Java EE 7 • GlassFish 4 • NetBeans 8
Guide Pratique — JavaMail avec Java 8 / NetBeans 8 / GlassFish 4 — De A à Z
Étape 8 — Test et Vérification
L’application est déployée. Voici comment la tester et vérifier que tout fonctionne correctement.
8.1 Accéder à l’application
54. Ouvrir un navigateur et aller à l’adresse :
[Link]
55. Le formulaire de contact doit s’afficher avec trois champs : Destinataire, Sujet et Message.
8.2 Tester l’envoi
56. Remplir le formulaire :
Champ Valeur de test
Adresse destinataire [Link]@[Link]
Sujet Test JavaMail depuis NetBeans 8
Message Bonjour ! Ceci est un test JavaMail avec Java 8.
57. Cliquer sur "Envoyer l'e-mail"
8.3 Résultats attendus
Si tout est correctement configuré, vous obtenez :
• Sur la page : Le message vert "✅ E-mail envoyé avec succès à : ..." s’affiche.
• Dans les logs NetBeans : La ligne "[MailService] E-mail envoyé à : ..." apparaît dans l'onglet
GlassFish.
• Dans votre boîte mail (ou Mailtrap) : L'e-mail de test est reçu.
8.4 Consulter les logs GlassFish
58. Dans NetBeans, en bas de l’écran, cliquer sur l’onglet "GlassFish Server 4.1.1"
59. Vous pouvez voir en temps réel les messages système et les erreurs.
60. Si une erreur survient, la trace complète (stack trace) est affichée ici pour vous aider à
diagnostiquer.
JavaMail 1.5 • [Link].* • Java EE 7 • GlassFish 4 • NetBeans 8
Guide Pratique — JavaMail avec Java 8 / NetBeans 8 / GlassFish 4 — De A à Z
Étape 9 — Améliorations : E-mail HTML et Pièce Jointe
Une fois la version de base fonctionnelle, voici comment enrichir le MailService pour envoyer des e-mails
en HTML et avec des pièces jointes.
9.1 Ajouter la méthode d’envoi HTML
Ajouter cette nouvelle méthode dans la classe [Link] :
/**
* Envoie un e-mail au format HTML.
* @param destinataire Adresse du destinataire
* @param sujet Sujet de l'e-mail
* @param corpsHtml Corps en HTML (ex: "<h1>Bonjour</h1><p>...</p>")
*/
public void envoyerEmailHTML(String destinataire,
String sujet, String corpsHtml) {
try {
MimeMessage message = new MimeMessage(mailSession);
[Link](new InternetAddress("[Link]@[Link]"));
[Link]([Link],
new InternetAddress(destinataire));
[Link](sujet, "UTF-8");
// Type MIME HTML
[Link](corpsHtml, "text/html; charset=UTF-8");
[Link](message);
[Link]("[MailService] E-mail HTML envoyé à : "
+ destinataire);
} catch (MessagingException e) {
throw new RuntimeException("Echec envoi HTML", e);
}
}
9.2 Ajouter la méthode d’envoi avec pièce jointe
Cette méthode utilise MimeMultipart pour combiner le corps HTML et un fichier joint :
import [Link];
import [Link];
import [Link];
/**
* Envoie un e-mail HTML avec une pièce jointe.
* @param destinataire Adresse du destinataire
* @param sujet Sujet de l'e-mail
* @param corpsHtml Corps en HTML
* @param fichier Fichier à joindre (peut être null si pas de PJ)
*/
public void envoyerEmailAvecPJ(String destinataire, String sujet,
String corpsHtml, File fichier) {
try {
MimeMessage message = new MimeMessage(mailSession);
[Link](new InternetAddress("[Link]@[Link]"));
[Link]([Link],
new InternetAddress(destinataire));
[Link](sujet, "UTF-8");
JavaMail 1.5 • [Link].* • Java EE 7 • GlassFish 4 • NetBeans 8
Guide Pratique — JavaMail avec Java 8 / NetBeans 8 / GlassFish 4 — De A à Z
// Partie 1 : corps HTML
MimeBodyPart corpsPart = new MimeBodyPart();
[Link](corpsHtml, "text/html; charset=UTF-8");
MimeMultipart multipart = new MimeMultipart();
[Link](corpsPart);
// Partie 2 : pièce jointe (si fournie)
if (fichier != null && [Link]()) {
MimeBodyPart pjPart = new MimeBodyPart();
[Link](fichier);
[Link](pjPart);
}
[Link](multipart);
[Link](message);
} catch (Exception e) {
throw new RuntimeException("Echec envoi avec PJ", e);
}
}
JavaMail 1.5 • [Link].* • Java EE 7 • GlassFish 4 • NetBeans 8
Guide Pratique — JavaMail avec Java 8 / NetBeans 8 / GlassFish 4 — De A à Z
Annexe — Résolution des Erreurs Courantes
Cette section liste les problèmes les plus fréquents et leurs solutions.
Erreur Cause et Solution
Le nom JNDI 'mail/DemoMailSession' n'est pas trouvé. Vérifier
[Link]
que la session JavaMail a bien été créée dans GlassFish avec
ception
exactement ce nom JNDI.
GlassFish ne peut pas contacter le serveur SMTP. Vérifier
Connection refused (port 587) votre connexion internet, le pare-feu, et que les propriétés
[Link] et [Link] sont correctes.
Identifiants SMTP incorrects. Pour Gmail, vérifier que 'Accès
AuthenticationFailedException applications moins sécurisées' est activé, ou utiliser un mot de
passe d'application.
L'injection @Resource a échoué. Assurer que la classe est
NullPointerException sur bien un EJB (@Stateless) et que le nom JNDI dans
mailSession @Resource(name=...) correspond exactement à celui de
GlassFish.
Problème Maven. Faire clic droit > Clean and Build. Si éa
BUILD FAILURE dans NetBeans persiste, vérifier la connexion internet pour télécharger les
dépendances (l'onglet Output donne le détail).
L'application n'est pas correctement déployée. Refaire : clic
404 Not Found sur /[Link] droit > Clean and Build, puis clic droit > Deploy. Vérifier l'URL :
[Link]
La dépendance Maven n'est pas téléchargée. Faire clic droit
[Link] non reconnu (import
sur le projet > Reload POM. Si le problème persiste, vérifier la
rouge)
connexion internet.
Vérifier que le port 4848 et 8080 ne sont pas utilisés par un
GlassFish ne démarre pas autre processus. Sous Windows, lancer 'netstat -ano |
findstr :8080' pour identifier le processus.
Liste de contrôle finale (à vérifier si ça ne fonctionne pas)
• ☐ [Link] : scope 'provided' pour [Link] et javaee-api.
• ☐ GlassFish : Session JavaMail créée avec JNDI Name = mail/DemoMailSession.
• ☐ GlassFish : Propriétés SMTP (port, auth, starttls, password) correctement renseignées.
• ☐ [Link] : @Resource(name = "mail/DemoMailSession") correspond exactement au
nom JNDI.
• ☐ [Link] : L'adresse dans setFrom() correspond à votre compte SMTP.
• ☐ [Link] : @WebServlet("/EnvoyerMailServlet") correspond à action= dans le
formulaire.
• ☐ [Link] : action="EnvoyerMailServlet" sans slash au début.
• ☐ GlassFish démarré : Icône verte dans l'onglet Services de NetBeans.
• ☐ Déploiement réussi : Application visible dans GlassFish Admin Console > Applications.
🎉 Félicitations ! Vous disposez maintenant d’une application JEE complète qui envoie de vrais e-mails
via JavaMail 1.5 sur Java 8, NetBeans 8 et GlassFish 4. La même architecture peut être étendue pour
envoyer des confirmations de commande, des alertes ou tout autre type de notification.
JavaMail 1.5 • [Link].* • Java EE 7 • GlassFish 4 • NetBeans 8