Latest web development tutorials

Servlet email

Envoyer un e-mail en utilisant le Servlet est très simple, mais d' abord vous devez installerAPI JavaMail et le Cadred'activation Java)sur votre ordinateurJAF).

  • Vous pouvez télécharger la dernière version de Java le JavaMail , ouvrez le côté droit de la page , il y a un lien Téléchargements, cliquez dessus pour télécharger.
  • Vous pouvez télécharger la dernière version de Java (Version 1.1.1) JAF .

Vous pouvez également utiliser le site pour fournir le lien de téléchargement:

Téléchargez et décompressez les fichiers dans le répertoire de haut niveau nouvellement créé, vous trouverez un certain fichier jar deux applications. Vous devez ajouter des fichiersmail.jar et activation.jarà votre CLASSPATH.

Envoyer un simple e-mail

Les exemples suivants envoient un simple e-mail à partir de votre ordinateur. Cela suppose que votrehôte local est relié au support Internet et e-mail.Tout en veillant à ce que Java packages Email API et package JAF tous les fichiers JAR dans le CLASSPATH sont disponibles.

// Nom du fichier SendEmail.java
import java.io. *;
import java.util * .;
javax.servlet import * .;
javax.servlet.http import * .;
javax.mail import * .;
javax.mail.internet import * .;
javax.activation import * .;
 
public class SendEmail étend HttpServlet {
    
  public void doGet (HttpServletRequest demande,
                    HttpServletResponse réponse)
            lance ServletException, IOException
  {
      // E-mail ID du destinataire
      Chaîne à = "[email protected]";
 
      // E-mail ID de l'expéditeur
      String à partir = "[email protected]";
 
      // Disons que vous envoyez un e-mail Chaîne host = "localhost" de l'hôte local;
 
      // Obtenir les propriétés du système Propriétés = System.getProperties ();
 
      // Configurer un properties.setProperty de serveur de messagerie ( "mail.smtp.host", hôte);
 
      // Obtenir la session de session d'objet de session par défaut = Session.getDefaultInstance (propriétés);
      
      // Définissez le response.setContentType type de contenu de réponse ( "text / html; charset = UTF-8");
      PrintWriter out = response.getWriter ();

      try {
         // Création d'un défaut des objets MimeMessage MimeMessage message = nouvelle MimeMessage (session);
         // Définir la tête From: champ de l'en-tête.
         message.setFrom (nouveau InternetAddress (de));
         // Set To: champ de l'en-tête d'en-tête.
         message.addRecipient (Message.RecipientType.TO,
                                  nouvelle InternetAddress (à));
         // Définir le champ Objet: en-tête
         message.setSubject ( "Ceci est la ligne Objet!");
         // Maintenant, placez le message réel message.setText ( "Ceci est un message réel»);
         // Envoyer le message Transport.send (message);
         String title = "email";
         res String = "envoyé avec succès des messages ...";
         Chaîne docType = "\ n <DOCTYPE html!>";
         out.println (docType +
         "<Html> \ n" +
         "<Head> <title>" + titre + "</ title> </ head> \ n" +
         "<Body bgcolor = \" # f0f0f0 \ "> \ n" +
         "<H1 align = \" center \ ">" + titre + "</ h1> \ n" +
         "<P align = \" center \ ">" + res + "</ p> \ n" +
         "</ Body> </ html>");
      } Catch (MessagingException Mex) {
         mex.printStackTrace ();
      }
   }
} 

Maintenant, nous allons compiler les Servlet ci-dessus, et de créer 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, en visitant l'URL http: // localhost: 8080 / SendEmail appeler ce Servlet. Ceci enverra un email à l'emailIDdonné [email protected], et apparaîtra comme indiqué dans la réponse suivante:

Envoyer un e-mail

Réussir envoyé un message ...

Si vous souhaitez envoyer un e-mail à plusieurs destinataires, utilisez les méthodes suivantes pour spécifier plusieurs adresses e-mail ID:

addRecipients vides (type Message.RecipientType, 
                   Adresse [] adresses)
lance MessagingException

Ce qui suit est une description des paramètres:

  • Type: Ce sera défini comme TO, CC, ou BCC.Ici, CC au nom du CC, les représentants BCC BCC. Par exempleMessage.RecipientType.TO.
  • adresses: Ceci est un tableau de e-mail ID.Lors de la spécification e-mail ID, vous devez utiliser la méthode InternetAddress ().

Envoyer un e-mail HTML

L'exemple suivant envoie un e-mail au format HTML sur votre ordinateur. Cela suppose que votrehôte local est relié au support Internet et e-mail.Tout en veillant à ce que Java packages Email API et package JAF tous les fichiers JAR dans le CLASSPATH sont disponibles.

Cet exemple est très similaire aux exemples précédents, mais ici nous utilisons setContent () pour régler le deuxième paramètre est "text / html" contenu, ce paramètre est utilisé pour spécifier le contenu HTML contenu dans le message.

L'utilisation de cette instance, vous pouvez envoyer le contenu ne se limite pas à la taille du contenu HTML.

// Nom du fichier SendEmail.java
import java.io. *;
import java.util * .;
javax.servlet import * .;
javax.servlet.http import * .;
javax.mail import * .;
javax.mail.internet import * .;
javax.activation import * .;
 
public class SendEmail étend HttpServlet {
    
  public void doGet (HttpServletRequest demande,
                    HttpServletResponse réponse)
            lance ServletException, IOException
  {
      // E-mail ID du destinataire
      Chaîne à = "[email protected]";
 
      // E-mail ID de l'expéditeur
      String à partir = "[email protected]";
 
      // Disons que vous envoyez un e-mail Chaîne host = "localhost" de l'hôte local;
 
      // Obtenir les propriétés du système Propriétés = System.getProperties ();
 
      // Configurer un properties.setProperty de serveur de messagerie ( "mail.smtp.host", hôte);
 
      // Obtenir la session de session d'objet de session par défaut = Session.getDefaultInstance (propriétés);
      
	  // Définissez le response.setContentType type de contenu de réponse ( "text / html; charset = UTF-8");
      PrintWriter out = response.getWriter ();

      try {
         // Création d'un défaut des objets MimeMessage MimeMessage message = nouvelle MimeMessage (session);
         // Définir la tête From: champ de l'en-tête.
         message.setFrom (nouveau InternetAddress (de));
         // Set To: champ de l'en-tête d'en-tête.
         message.addRecipient (Message.RecipientType.TO,
                                  nouvelle InternetAddress (à));
         // Définir le champ Objet: en-tête
         message.setSubject ( "Ceci est la ligne Objet!");

         // Définir le message HTML taille du contenu message.setContent limitée réelle ( "<h1> Ceci est un message réel </ h1>",
                            "Text / html");
         // Envoyer le message Transport.send (message);
         String title = "email";
         res String = "envoyé avec succès des messages ...";
         Chaîne docType = "\ n <DOCTYPE html!>";
         out.println (docType +
         "<Html> \ n" +
         "<Head> <title>" + titre + "</ title> </ head> \ n" +
         "<Body bgcolor = \" # f0f0f0 \ "> \ n" +
         "<H1 align = \" center \ ">" + titre + "</ h1> \ n" +
         "<P align = \" center \ ">" + res + "</ p> \ n" +
         "</ Body> </ html>");
      } Catch (MessagingException Mex) {
         mex.printStackTrace ();
      }
   }
} 

Compiler et exécuter l'Servlet ci-dessus, envoyer des messages HTML sur un ID e-mail donnée.

Envoyer des pièces jointes dans l'e-mail

Les exemples suivants envoyer un e-mail avec une pièce jointe sur votre ordinateur sera. Cela suppose que votrehôte local est relié au support Internet et e-mail.Tout en veillant à ce que Java packages Email API et package JAF tous les fichiers JAR dans le CLASSPATH sont disponibles.

// Nom du fichier SendEmail.java
import java.io. *;
import java.util * .;
javax.servlet import * .;
javax.servlet.http import * .;
javax.mail import * .;
javax.mail.internet import * .;
javax.activation import * .;
 
public class SendEmail étend HttpServlet {
    
  public void doGet (HttpServletRequest demande,
                    HttpServletResponse réponse)
            lance ServletException, IOException
  {
      // E-mail ID du destinataire
      Chaîne à = "[email protected]";
 
      // E-mail ID de l'expéditeur
      String à partir = "[email protected]";
 
      // Disons que vous envoyez un e-mail Chaîne host = "localhost" de l'hôte local;
 
      // Obtenir les propriétés du système Propriétés = System.getProperties ();
 
      // Configurer un properties.setProperty de serveur de messagerie ( "mail.smtp.host", hôte);
 
      // Obtenir la session de session d'objet de session par défaut = Session.getDefaultInstance (propriétés);
      
	  // Définissez le response.setContentType type de contenu de réponse ( "text / html; charset = UTF-8");
      PrintWriter out = response.getWriter ();

       try {
         // Création d'un défaut des objets MimeMessage MimeMessage message = nouvelle MimeMessage (session);
 
         // Définir la tête From: champ de l'en-tête.
         message.setFrom (nouveau InternetAddress (de));
 
         // Set To: champ de l'en-tête d'en-tête.
         message.addRecipient (Message.RecipientType.TO,
                                  nouvelle InternetAddress (à));
 
         // Définir le champ Objet: en-tête
         message.setSubject ( "Ceci est la ligne Objet!");
 
         // Création d'une partie de message BodyPart messageBodyPart = new MimeBodyPart ();
 
         // Remplissez un message messageBodyPart.setText ( "Ceci est le corps du message");
         
         // Création d'un multi-partie message multipart Multipart = new MimeMultipart ();
 
         // Set message texte parties multipart.addBodyPart (messageBodyPart);
 
         // La deuxième partie est un accessoire messageBodyPart = new MimeBodyPart ();
         Chaîne filename = "file.txt";
         source DataSource = new FileDataSource (filename);
         messageBodyPart.setDataHandler (nouveau DataHandler (source));
         messageBodyPart.setFileName (nom de fichier);
         multipart.addBodyPart (messageBodyPart);
 
         // Envoyer un message en entier partie message.setContent (multipart);
 
         // Envoyer le message Transport.send (message);
         String title = "email";
         res String = "envoyer avec succès e-mail ...";
         Chaîne docType = "\ n <DOCTYPE html!>";
         out.println (docType +
         "<Html> \ n" +
         "<Head> <title>" + titre + "</ title> </ head> \ n" +
         "<Body bgcolor = \" # f0f0f0 \ "> \ n" +
         "<H1 align = \" center \ ">" + titre + "</ h1> \ n" +
         "<P align = \" center \ ">" + res + "</ p> \ n" +
         "</ Body> </ html>");
      } Catch (MessagingException Mex) {
         mex.printStackTrace ();
      }
   }
} 

Compiler et exécuter l'Servlet ci-dessus, envoyer des messages avec des pièces jointes sur un ID e-mail donnée.

section d'authentification de l'utilisateur

Si vous avez besoin de fournir l'authentification e-mail ID d'utilisateur du serveur et mot de passe, vous pouvez définir les propriétés suivantes:

 props.setProperty ( "mail.user", "myuser");
 props.setProperty ( "mail.password", "mypwd");

Le reste du mécanisme de distribution e-mail est compatible avec ce qui précède explique.