Bien qu'il soit très simple d'utiliser JSP pour envoyer des emails, cela nécessite l'installation de l'API JavaMail et du JavaBean Activation Framework.
Téléchargez la dernière version de JavaMail ici.
Téléchargez la dernière version de JavaBeans Activation Framework (JAF) ici.
Téléchargez et décompressez ces fichiers. Dans le répertoire racine, vous verrez une série de packages jar. Ajoutez le package mail.jar et le package activation.jar à la variable CLASSPATH.
Cet exemple montre comment envoyer un simple e-mail depuis votre machine. Cela suppose que localhost est connecté au réseau et a la capacité d'envoyer un e-mail. Dans le même temps, veuillez confirmer à nouveau que le package mail.jar et le package activation.jar ont été ajoutés à la variable CLASSPATH.
<%@ page import="java.io.*,java.util.*,javax.mail.*"%><%@ page import="javax.mail.internet.*,javax.activation.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %><% String result ; // Chaîne de courrier électronique du destinataire à = "[email protected]" ; // Envoyer la chaîne de courrier électronique de l'expéditeur depuis = "[email protected]"; // Supposons que vous envoyez un e-mail à partir d'un hôte local String host = "localhost"; // Récupère l'objet Propriétés du système Properties = System.getProperties(); ( "mail.smtp.host", host); // Récupère l'objet Session par défaut. Session mailSession = Session.getDefaultInstance(properties); try{ // Crée un objet MimeMessage par défaut. MimeMessage message = new MimeMessage(mailSession); // Définir le champ d'en-tête du De : header message.setFrom(new InternetAddress(from)); // Définir le champ d'en-tête du To : header message.addRecipient(Message.RecipientType. TO, new InternetAddress(to)); // Définir le sujet : champ d'en-tête message.setSubject("Ceci est la ligne d'objet !"); Définissez maintenant le message réel message.setText("Ceci est le message réel"); // Envoyer le message Transport.send(message); result = "Message envoyé avec succès...."; (); result = "Erreur : impossible d'envoyer le message..."; } %><html><head><title>Envoyer un e-mail en utilisant JSP</title></head><body><center><h1>Envoyer un e-mail à l'aide de JSP</h1></center><p align="center"><% out.println("Résultat : " + résultat + "n"); %></p></body></html>
Visitez maintenant http://localhost:8080/SendEmail.jsp, il enverra un e-mail à [email protected] et affichera les résultats suivants :
Envoyer un e-mail à l'aide de JSPResult : message envoyé avec succès....Si vous souhaitez envoyer un e-mail à plusieurs personnes, les méthodes répertoriées ci-dessous peuvent être utilisées pour spécifier plusieurs adresses e-mail :
void addRecipients (type Message.RecipientType, adresses Address []) lance MessagingExceptionLes paramètres sont décrits comme suit :
type : Cette valeur sera définie sur TO, CC ou BCC. CC signifie copie, BCC signifie copie noire et TO est utilisé dans l'exemple de programme.
adresses : il s'agit d'un tableau d'adresses e-mail Lorsque vous spécifiez une adresse e-mail, vous devez utiliser la méthode InternetAddress().
Cet exemple envoie un simple e-mail HTML. Cela suppose que votre hôte local est connecté au réseau et a la capacité d'envoyer du courrier. Dans le même temps, veuillez confirmer à nouveau que le package mail.jar et le package activation.jar ont été ajoutés à la variable CLASSPATH.
Cet exemple est très similaire à l'exemple précédent, mais dans cet exemple, nous utilisons la méthode setContent() et passons "text/html" comme deuxième paramètre pour indiquer que le message contient du contenu HTML.
<%@ page import="java.io.*,java.util.*,javax.mail.*"%><%@ page import="javax.mail.internet.*,javax.activation.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %><% String result ; // Chaîne de courrier électronique du destinataire à = "[email protected]" ; // Envoyer la chaîne de courrier électronique de l'expéditeur depuis = "[email protected]"; // Supposons que vous envoyez un e-mail à partir d'un hôte local String host = "localhost"; // Récupère l'objet Propriétés du système Properties = System.getProperties(); ( "mail.smtp.host", host); // Récupère l'objet Session par défaut. Session mailSession = Session.getDefaultInstance(properties); try{ // Crée un objet MimeMessage par défaut. MimeMessage message = new MimeMessage(mailSession); // Définir le champ d'en-tête du De : header message.setFrom(new InternetAddress(from)); // Définir le champ d'en-tête du To : header message.addRecipient(Message.RecipientType. TO, new InternetAddress(to)); // Définir le sujet : champ d'en-tête message.setSubject("Ceci est la ligne d'objet !"); Définir le message HTML message.setContent("<h1>Ceci est un message réel</h1>","text/html" ); // Envoyer le message Transport.send(message result = "Message envoyé avec succès...." ; }catch (MessagingException mex) { mex.printStackTrace(); result = "Erreur : impossible d'envoyer le message..." }%><html><head><title>Envoyer un e-mail HTML en utilisant JSP</title></head><body><center><h1>Envoyer un e-mail à l'aide de JSP</h1></center><p align="center"><% out.println("Résultat : " + résultat + "n"); %></p></body></html>
Vous pouvez maintenant essayer d'utiliser le fichier JSP ci-dessus pour envoyer un message HTML par courrier électronique.
Cet exemple nous montre comment envoyer un email contenant une pièce jointe.
<%@ page import="java.io.*,java.util.*,javax.mail.*"%><%@ page import="javax.mail.internet.*,javax.activation.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %><% String result ; // Chaîne de courrier électronique du destinataire à = "[email protected]" ; // Envoyer la chaîne de courrier électronique de l'expéditeur depuis = "[email protected]"; // Supposons que vous envoyez un e-mail à partir d'un hôte local String host = "localhost"; // Récupère l'objet Propriétés du système Properties = System.getProperties(); ( "mail.smtp.host", host); // Récupère l'objet Session par défaut. Session mailSession = Session.getDefaultInstance(properties); try{ // Crée un objet MimeMessage par défaut. MimeMessage message = new MimeMessage(mailSession); // Définir le champ d'en-tête du De : header message.setFrom(new InternetAddress(from)); // Définir le champ d'en-tête du To : header message.addRecipient(Message.RecipientType. TO, new InternetAddress(to)); //Définissez le champ d'en-tête Objet : message.setSubject("Ceci est la ligne d'objet !"); //Créez la partie du message BodyPart ; messageBodyPart = new MimeBodyPart(); // Remplir le message messageBodyPart.setText("Ceci est le corps du message"); // Créer un message multimédia Multipart = new MimeMultipart(); messageBodyPart); / / Partie jointe messageBodyPart = new MimeBodyPart(); String filename = "file.txt"; new FileDataSource(filename); messageBodyPart.setDataHandler(new DataHandler(source)); messageBodyPart.setFileName(filename); multipart.addBodyPart(messageBodyPart); // Envoyer le message complet message.setContent(multipart ); .send (message); Titre de la chaîne = "Envoyer un e-mail" ; résultat = "Message envoyé avec succès..." ; (MessagingException mex) { mex.printStackTrace(); result = "Erreur : impossible d'envoyer le message..." } %><html><head><title>Envoyer un e-mail de pièce jointe à l'aide de JSP</title></head ><body><center><h1>Envoyer un e-mail de pièce jointe à l'aide de JSP</h1></center><p align="center"><% out.println("Résultat : " + résultat + "n"); %></p></body></html>
Si le serveur de messagerie nécessite un nom d'utilisateur et un mot de passe pour l'authentification de l'utilisateur, ils peuvent être définis comme suit :
props.setProperty("mail.user", "monutilisateur"); props.setProperty("mail.password", "monpwd");Utilisez un formulaire HTML pour recevoir un e-mail et obtenir toutes les informations de l'e-mail via l'objet de requête :
String to = request.getParameter("to");String from = request.getParameter("from");String subject = request.getParameter("subject");String messageText = request.getParameter("body");Une fois que vous disposez des informations ci-dessus, vous pouvez envoyer l'e-mail en utilisant l'exemple mentionné précédemment.