English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Bien que l'implémentation de la fonction d'envoi d'e-mail en utilisant JSP soit simple, il est nécessaire d'avoir l'API JavaMail et d'installer le JavaBean Activation Framework.
Vous pouvez télécharger la dernière version sur le site Java depuis JavaMailOuvrez la page右侧有一个 Téléchargements Cliquez sur ce lien pour télécharger.
Vous pouvez télécharger la dernière version sur le site Java depuis JAF (version 1.1.1).
Téléchargez et décompressez ces fichiers, dans le répertoire racine, vous verrez une série de fichiers jar. Ajoutez les fichiers jar mail.jar et activation.jar à la variable CLASSPATH.
Cet exemple montre comment envoyer un e-mail simple à partir de votre machine. Il suppose que localhost est connecté au réseau et capable d'envoyer un e-mail. En même temps, veuillez vérifier à nouveau que les fichiers jar mail.jar et 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; // E-mail du destinataire String to = "[email protected]"; // E-mail de l'expéditeur String from = "[email protected]"; // Supposons que vous envoyiez un e-mail depuis l'hôte local String host = "localhost"; // Obtenir l'objet de propriétés système. Properties properties = System.getProperties(); // Définir le serveur de messagerie. properties.setProperty("mail.smtp.host", host); // Obtenir l'objet Session par défaut. Session mailSession = Session.getDefaultInstance(properties); try{ // Créer un objet MimeMessage par défaut. MimeMessage message = new MimeMessage(mailSession); // Définir le champ d'en-tête From: message.setFrom(new InternetAddress(from)); // Définir le champ d'en-tête To: message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Définir le champ d'en-tête Subject: message.setSubject("Ceci est la ligne de sujet!"); // Message actuel configuré maintenant message.setText("Ceci est le message réel"); // Envoyer un 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 en utilisant JSP</title> </head> <body> <center> <h1>Envoyer un Email en utilisant JSP</h1> </center> <p align="center"> <% out.println("Result: " + result + "\n"); %> </p> </body> </html>
Maintenant, accédez à http ://localhost :8080/SendEmail.jsp, il enverra un e-mail à [email protected] et affichera le résultat suivant :
Envoyer un e-mail en utilisant JSP Résultat : message envoyé avec succès....
Si vous souhaitez envoyer un e-mail à plusieurs personnes, les méthodes suivantes peuvent être utilisées pour indiquer plusieurs adresses e-mail :
void addRecipients(Message.RecipientType type, Address[] addresses) lève MessagingException
La description des paramètres est la suivante :
type : cette valeur sera définie sur TO (destinataire), CC ou BCC. CC signifie Carbon Copy (copie en C), et BCC signifie Blind Carbon Copy (copie en C cachée). L'exemple de programme utilise TO.
addresses : c'est un tableau d'adresses e-mail, et l'adresse e-mail spécifiée doit être utilisée avec la méthode InternetAddress().
Cet exemple envoie un e-mail HTML simple. Il suppose que votre localhost est connecté au réseau et capable d'envoyer des e-mails. En même temps, veuillez vérifier à nouveau que les fichiers jar mail.jar et activation.jar ont été ajoutés à la variable CLASSPATH.
Cette instance est très similaire à la précédente, mais dans cette instance, nous utilisons la méthode setContent(), pour "text/html" en tant que 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; // E-mail du destinataire String to = "[email protected]"; // E-mail de l'expéditeur String from = "[email protected]"; // Supposons que vous envoyiez un e-mail depuis l'hôte local String host = "localhost"; // Obtenir l'objet de propriétés système. Properties properties = System.getProperties(); // Définir le serveur de messagerie. properties.setProperty("mail.smtp.host", host); // Obtenir l'objet Session par défaut. Session mailSession = Session.getDefaultInstance(properties); try{ // Créer un objet MimeMessage par défaut. MimeMessage message = new MimeMessage(mailSession); // Définir le champ d'en-tête From: message.setFrom(new InternetAddress(from)); // Définir le champ d'en-tête To: message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Définir le champ d'en-tête Subject: message.setSubject("Ceci est la ligne de sujet!"); // Définir un message HTML message.setContent("<h1>Ceci est le message réel</h1>", "text/html" ); // Envoyer un 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 Email HTML en utilisant JSP</title> </head> <body> <center> <h1>Envoyer un Email en utilisant JSP</h1> </center> <p align="center"> <% out.println("Result: " + result + "\n"); %> </p> </body> </html>
Vous pouvez maintenant essayer d'utiliser le fichier JSP ci-dessus pour envoyer un e-mail contenant un message HTML.
Cette instance nous montre comment envoyer un e-mail 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; // E-mail du destinataire String to = "[email protected]"; // E-mail de l'expéditeur String from = "[email protected]"; // Supposons que vous envoyiez un e-mail depuis l'hôte local String host = "localhost"; // Obtenir l'objet de propriétés système. Properties properties = System.getProperties(); // Définir le serveur de messagerie. properties.setProperty("mail.smtp.host", host); // Obtenir l'objet Session par défaut. Session mailSession = Session.getDefaultInstance(properties); try{ // Créer un objet MimeMessage par défaut. MimeMessage message = new MimeMessage(mailSession); // Définir le champ d'en-tête From: message.setFrom(new InternetAddress(from)); // Définir le champ d'en-tête To: message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Définir le champ d'en-tête Subject: message.setSubject("Ceci est la ligne de sujet!"); // Créer une partie de message BodyPart messageBodyPart = new MimeBodyPart(); // Remplir le message messageBodyPart.setText("Ceci est le corps du message"); // Créer un message multimédia Multipart multipart = new MimeMultipart(); // Configurer la partie du message texte multipart.addBodyPart(messageBodyPart); // Partie de l'attachment messageBodyPart = new MimeBodyPart(); String filename = "file.txt"; DataSource source = new FileDataSource(filename); messageBodyPart.setDataHandler(new DataHandler(source)); messageBodyPart.setFileName(filename); multipart.addBodyPart(messageBodyPart); // Envoyer le message complet message.setContent(multipart ); // Envoyer un message Transport.send(message); String title = "Envoyer un Email"; 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 avec l'attachement en utilisant JSP</title> </head> <body> <center> <h1>Envoyer un e-mail joint en utilisant JSP</h1> </center> <p align="center"> <% out.println("Result: " + result + "\n"); %> </p> </body> </html>
Si le serveur de courrier électronique nécessite un nom d'utilisateur et un mot de passe pour l'authentification de l'utilisateur, vous pouvez le configurer comme suit :
properties.setProperty("mail.user", "myuser"); properties.setProperty("mail.password", "mypwd");
Recevez un e-mail à l'aide d'un formulaire HTML et obtenez toutes les informations de l'e-mail via l'objet request :
String to = request.getParameter("to"); String from = request.getParameter("from"); String subject = request.getParameter("subject"); String messageText = request.getParameter("body");
Après avoir obtenu ces informations, vous pouvez utiliser les exemples mentionnés précédemment pour envoyer des e-mails.