décembre
2008
Dans des projets d’entreprises, nous sommes très rapidement confrontés à la nécessité d’envoyer un email.
Que ce soit pour notifier une commande, pour envoyer un mot de passe lors de la création d’un utilisateur ou encore pour envoyer une alerte lorsqu’un problème de traitement survient.
En Java, l’envoi d’email passe par l’API JavaMail. Celle-ci est très puissante, mais n’est pas des plus simple à utiliser.
Mais si par chance, vous travaillez déjà avec Spring Framework dans votre projet, vous pourrez facilement envoyer des emails sans connaitre JavaMail.
Pour mon exemple, je vais créer un service qui aura la responsabilité d’envoyer un email lorsqu’une erreur surviendra.
Pour cela, nous allons tout d’abord définir le contrat du service
Une fois cela fait, nous allons créer une implémentation, utilisant les classes d’aides de Spring :
Vous pouvez voir qu’une instance de MailSender est injectée ( Point 1 ). Cette interface fait partie du framework Spring et est est le point d’entrée de l’API Spring pour l’envoie de courrier électronique. Cette interface possède deux méthodes permettant d’envoyer un ou plusieurs messages:
Ces messages devant être du type SimpleMailMessage, il est donc nécessaire de créer une instance de ce type ( Point 2 ).
Il ne nous reste plus qu’a remplir les informations de l’email : adresse de destination, adresse d’origine, le sujet et le texte ( Point 3 ).
La dernière étape consiste à utiliser le MailSender pour envoyer le message ( Point 4 ).
Il ne nous reste plus qu’à fournir l’implémentation du MailSender à notre service pour que le tout fonctionne.
Cet étape étant purement de la configuration Spring :
L’implémentation utilisée est de type JavaMailSenderImpl, et donc nous retrouvons bien l’API de base JavaMail sans avoir à connaître son utilisation directe.
Cela dit, cette première version n’est pas complète. En effet, si le texte et le sujet des emails envoyés sont clairement des données dynamiques, l’origine et la destination pourraient être externalisée dans le fichier de configuration XML.
De plus l’utilisation de SimpleMailMessage ne permet pas l’utilisation du format HTML ni même les fichiers attachés.
Une version plus évoluée du service vous sera présenté dans un prochain billet.
Bonsoir et merci Hikage.
Également, je conserve ton article sous le coude.
Y aura-t-il une autre version pour éventuellement permettre l’utilisation du format HTML et des fichiers attachés ?
Merci d’avance.
Chris
Merci Hikage , je garde ça dans un coin.