English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Il est très simple d'envoyer un e-mail en utilisant Servlet, mais avant tout, vous devez installer JavaMail API et Java Activation Framework)JAF).
Vous pouvez télécharger la dernière version disponible sur le site Java : JavaMail,puis ouvrir la page右侧有一个 Téléchargements Cliquez sur ce lien pour télécharger.
Vous pouvez télécharger la dernière version disponible sur le site Java : JAF (version)} 1.1.1).
Vous pouvez également utiliser les liens de téléchargement fournis sur ce site :
Téléchargez et décompressez ces fichiers, vous trouverez dans le répertoire de niveau supérieur créé des fichiers jar de certaines applications. Vous devez ajouter mail.jar et activation.jar fichier doit être ajouté à votre CLASSPATH.
L'exemple suivant enverra un e-mail simple à partir de votre ordinateur. Ici, nous supposons que votreHôte localConnecté à Internet et capable d'envoyer des e-mails. Assurez-vous également que tous les fichiers jar du paquet Java Email API et JAF sont disponibles dans le CLASSPATH.
// Nom du fichier SendEmail.java import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendEmail extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // ID e-mail du destinataire String to = "[email protected]"; // ID 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 les propriétés du système Properties properties = System.getProperties(); // Configurer le serveur de messagerie properties.setProperty("mail.smtp.host", host); // Obtenir l'objet Session par défaut Session session = Session.getDefaultInstance(properties); // Définir le type de contenu de la réponse response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try{ // Créer un objet MimeMessage par défaut MimeMessage message = new MimeMessage(session); // Définir le champ d'en-tête From: de l'en-tête. message.setFrom(new InternetAddress(from)); // Définir le champ d'en-tête To: de l'en-tête. message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Définir le champ d'en-tête Subject: message.setSubject("This is the Subject Line!"); // Maintenant, définissons le message réel message.setText("This is actual message"); // Envoyer un message Transport.send(message); String title = "Envoi d'e-mail"; String res = "Message envoyé avec succès..."; String docType = "<!DOCTYPE html> \n"; out.println(docType + "<html>\n" + "<head><title>" + title + "</title></head>\n" + "<body bgcolor="#f0f0f0">\n" + "<h1 align="center">" + title + "</h1>\n" + "<p align="center">" + res + "</p>\n" + "</body></html>"); }catch (MessagingException mex) { mex.printStackTrace(); } } }
Maintenant, compilons le Servlet ci-dessus et créons l'entrée suivante dans le fichier web.xml :
.... <servlet> <servlet-name>SendEmail</servlet-name> <servlet-class>SendEmail</servlet-class> </servlet> <servlet-mapping> <servlet-name>SendEmail</servlet-name> <url-pattern>/SendEmail</url-pattern> </servlet-mapping> ....
Maintenant, accédez à l'URL http://localhost:8080/Appelé cette Servlet via SendEmail. Cela enverra un e-mail à l'ID e-mail donné [email protected]et affichera la réponse suivante :
Envoyer un e-mailMessage envoyé avec succès... |
Si vous souhaitez envoyer un e-mail à plusieurs destinataires, utilisez la méthode suivante pour spécifier plusieurs ID d'e-mail :
void addRecipients(Message.RecipientType type, Address[] addresses) lève MessagingException
Voici une description des paramètres :
type :Cela sera réglé sur TO, CC ou BCC. Ici, CC signifie copie à, et BCC signifie copie cachée. Par exemple Message.RecipientType.TO.
addresses :C'est un tableau d'ID d'e-mail. Lorsque vous spécifiez un ID d'e-mail, vous devez utiliser la méthode InternetAddress().
L'exemple suivant enverra un e-mail au format HTML à partir de votre ordinateur. Ici, nous supposons que votreHôte localConnecté à Internet et capable d'envoyer des e-mails. Assurez-vous également que tous les fichiers jar du paquet Java Email API et JAF sont disponibles dans le CLASSPATH.
Ce exemple est très similaire au précédent, mais ici nous utilisons la méthode setContent() pour définir le deuxième paramètre sur "text/Le contenu de "html" est utilisé pour spécifier que le contenu HTML est inclus dans le message.
Avec cet exemple, vous pouvez envoyer du contenu HTML de toute taille.
// Nom du fichier SendEmail.java import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendEmail extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // ID e-mail du destinataire String to = "[email protected]"; // ID 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 les propriétés du système Properties properties = System.getProperties(); // Configurer le serveur de messagerie properties.setProperty("mail.smtp.host", host); // Obtenir l'objet Session par défaut Session session = Session.getDefaultInstance(properties); // Définir le type de contenu de la réponse response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try{ // Créer un objet MimeMessage par défaut MimeMessage message = new MimeMessage(session); // Définir le champ d'en-tête From: de l'en-tête. message.setFrom(new InternetAddress(from)); // Définir le champ d'en-tête To: de l'en-tête. message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Définir le champ d'en-tête Subject: message.setSubject("This is the Subject Line!"); // Définir le message HTML réel, la taille du contenu n'est pas limitée message.setContent("<h1>This is actual message</h1> "text/html" ); // Envoyer un message Transport.send(message); String title = "Envoi d'e-mail"; String res = "Message envoyé avec succès..."; String docType = "<!DOCTYPE html> \n"; out.println(docType + "<html>\n" + "<head><title>" + title + "</title></head>\n" + "<body bgcolor="#f0f0f0">\n" + "<h1 align="center">" + title + "</h1>\n" + "<p align="center">" + res + "</p>\n" + "</body></html>"); }catch (MessagingException mex) { mex.printStackTrace(); } } }
Compiler et exécuter le Servlet ci-dessus pour envoyer un message HTML à l'ID e-mail donné.
L'exemple suivant enverra un e-mail avec pièce jointe à partir de votre ordinateur. Supposons que vous ayezHôte localConnecté à Internet et capable d'envoyer des e-mails. Assurez-vous également que tous les fichiers jar du paquet Java Email API et JAF sont disponibles dans le CLASSPATH.
// Nom du fichier SendEmail.java import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendEmail extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // ID e-mail du destinataire String to = "[email protected]"; // ID 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 les propriétés du système Properties properties = System.getProperties(); // Configurer le serveur de messagerie properties.setProperty("mail.smtp.host", host); // Obtenir l'objet Session par défaut Session session = Session.getDefaultInstance(properties); // Définir le type de contenu de la réponse response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try{ // Créer un objet MimeMessage par défaut MimeMessage message = new MimeMessage(session); // Définir le champ d'en-tête From: de l'en-tête. message.setFrom(new InternetAddress(from)); // Définir le champ d'en-tête To: de l'en-tête. message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Définir le champ d'en-tête Subject: message.setSubject("This is the Subject Line!"); // Créer une partie de message BodyPart messageBodyPart = new MimeBodyPart(); // Remplir le message messageBodyPart.setText("This is message body"); // Créer un message multipart Multipart multipart = new MimeMultipart(); // Définir la partie de message texte multipart.addBodyPart(messageBodyPart); // La deuxième partie est un fichier joint messageBodyPart = new MimeBodyPart(); String filename = "file.txt"; DataSource source = new FileDataSource(filename); messageBodyPart.setDataHandler(new DataHandler(source)); messageBodyPart.setFileName(filename); multipart.addBodyPart(messageBodyPart); // Envoyer la partie complète du message message.setContent(multipart ); // Envoyer un message Transport.send(message); String title = "Envoi d'e-mail"; String res = "E-mail envoyé avec succès..."; String docType = "<!DOCTYPE html> \n"; out.println(docType + "<html>\n" + "<head><title>" + title + "</title></head>\n" + "<body bgcolor="#f0f0f0">\n" + "<h1 align="center">" + title + "</h1>\n" + "<p align="center">" + res + "</p>\n" + "</body></html>"); }catch (MessagingException mex) { mex.printStackTrace(); } } }
Compilez et exécutez le Servlet ci-dessus pour envoyer un message avec une pièce jointe par e-mail à l'ID e-mail donné.
Si vous devez fournir un ID utilisateur et un mot de passe pour l'authentification au serveur de messagerie, vous pouvez définir les propriétés suivantes :
props.setProperty("mail.user", "myuser"); props.setProperty("mail.password", "mypwd");
Le reste du mécanisme d'envoi d'e-mails est le même que celui décrit précédemment.