Latest web development tutorials

servlet de correo electrónico

Enviar un e-mail utilizando el servlet es muy simple, pero primero debe instalarJavaMail API y el Marco de activación de Java)en el equipoJAF).

  • Puede descargar la última versión de Java el JavaMail , abrir la parte derecha de la página hay un enlace de Descargas, haga clic en él para descargar.
  • Puede descargar la última versión de Java (versión 1.1.1) JAF .

También puede utilizar el sitio para proporcionar enlace de descarga:

Descargar y descomprimir los archivos en el directorio de nivel superior de nueva creación, se encuentra algún archivo jar dos aplicaciones. Es necesario añadir archivosmail.jar y activation.jara su CLASSPATH.

Enviar un simple e-mail

Los siguientes ejemplos envían un simple correo electrónico desde su ordenador. Esto supone que suordenador local se conecta al soporte de Internet y correo electrónico.Al tiempo que garantiza que los paquetes de correo electrónico de la API de Java y el paquete de JAF todos los archivos JAR en el CLASSPATH están disponibles.

// Nombre del archivo SendEmail.java
import java.io. *;
import java.util * .;
javax.servlet importación * .;
javax.servlet.http importación * .;
javax.mail importación * .;
javax.mail.internet importación * .;
javax.activation importación * .;
 
clase pública se extiende SendEmail HttpServlet {
    
  pública doGet vacío (solicitud de HttpServletRequest,
                    HttpServletResponse respuesta)
            lanza ServletException, IOException
  {
      // ID de correo electrónico del destinatario
      Cadena a = "[email protected]";
 
      // ID de correo electrónico del remitente
      Cadena desde = "[email protected]";
 
      // Digamos que usted envía host de correo electrónico String = "localhost" desde el host local;
 
      // Obtener propiedades del sistema Características del System.getProperties = ();
 
      // Establecer un properties.setProperty servidor de correo ( "mail.smtp.host", de acogida);
 
      // Obtener el objeto Session Sesión de sesión por defecto = Session.getDefaultInstance (propiedades);
      
      // Establecer el tipo de contenido de la respuesta response.setContentType ( "text / html; charset = UTF-8");
      PrintWriter cabo response.getWriter = ();

      try {
         // Crear un defecto MimeMessage objetos MimeMessage mensaje nuevo = MimeMessage (sesión);
         // Establecer el campo De: cabecera de la cabecera.
         message.setFrom (nueva InternetAddress (de));
         // Establecer Para: campo de cabecera de la cabecera.
         message.addRecipient (Message.RecipientType.TO,
                                  nueva InternetAddress (a));
         // Establecer el campo Asunto: cabecera
         message.setSubject ( "Esta es la línea de asunto!");
         // Ahora configure el mensaje real message.setText ( "Este es el mensaje real");
         // Enviar el mensaje Transport.send (mensaje);
         String title = "email";
         res de cadena = "mensajes enviados con éxito ...";
         Doctype Cadena = "\ n <HTML! DOCTYPE>";
         out.println (+ docType
         "<Html> \ n" +
         "<Head> <title>" + + título "</ title> </ head> \ n" +
         "<Body bgcolor = \" # f0f0f0 \ "> \ n" +
         "<H1 align = \" centro \ ">" + + título "</ h1> \ n" +
         "<P align = \" centro \ ">" + res + "</ p> \ n" +
         "</ Body> </ html>");
      } Catch (MessagingException mex) {
         mex.printStackTrace ();
      }
   }
} 

Ahora vamos a compilar el servlet anteriormente, y cree la siguiente entrada en el archivo 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>
....

Ahora en la siguiente URL http: // localhost: 8080 / SendEmail para llamar a este servlet. Esto enviará un correo electrónico al correo electrónicode identificacióndada [email protected], y aparecerá como se muestra en la siguiente respuesta:

Enviar e-mail

Se ha enviado correctamente un mensaje ...

Si desea enviar un correo electrónico a varios destinatarios, utilice los métodos siguientes para especificar varios ID de correo electrónico:

addRecipients vacío (tipo Message.RecipientType, 
                   Dirección [] direcciones)
lanza MessagingException

La siguiente es una descripción de los parámetros:

  • Tipo: Esto se establece como A, CC o CCO.Aquí, en nombre del CC CC, representantes BCC BCC. Por ejemploMessage.RecipientType.TO.
  • direcciones: Esta es una matriz de ID de correo electrónico.Al especificar ID de correo electrónico, es necesario utilizar el método InternetAddress ().

Enviar un correo electrónico HTML

El siguiente ejemplo se enviará un correo electrónico con formato HTML en su ordenador. Esto supone que suordenador local se conecta al soporte de Internet y correo electrónico.Al tiempo que garantiza que los paquetes de correo electrónico de la API de Java y el paquete de JAF todos los archivos JAR en el CLASSPATH están disponibles.

Este ejemplo es muy similar a los ejemplos anteriores, pero aquí usamos setContent () para establecer el segundo parámetro es "text / html" de contenido, este parámetro se utiliza para especificar el contenido HTML contenida en el mensaje.

El uso de este ejemplo, se puede enviar el contenido no se limita al tamaño del contenido HTML.

// Nombre del archivo SendEmail.java
import java.io. *;
import java.util * .;
javax.servlet importación * .;
javax.servlet.http importación * .;
javax.mail importación * .;
javax.mail.internet importación * .;
javax.activation importación * .;
 
clase pública se extiende SendEmail HttpServlet {
    
  pública doGet vacío (solicitud de HttpServletRequest,
                    HttpServletResponse respuesta)
            lanza ServletException, IOException
  {
      // ID de correo electrónico del destinatario
      Cadena a = "[email protected]";
 
      // ID de correo electrónico del remitente
      Cadena desde = "[email protected]";
 
      // Digamos que usted envía host de correo electrónico String = "localhost" desde el host local;
 
      // Obtener propiedades del sistema Características del System.getProperties = ();
 
      // Establecer un properties.setProperty servidor de correo ( "mail.smtp.host", de acogida);
 
      // Obtener el objeto Session Sesión de sesión por defecto = Session.getDefaultInstance (propiedades);
      
	  // Establecer el tipo de contenido de la respuesta response.setContentType ( "text / html; charset = UTF-8");
      PrintWriter cabo response.getWriter = ();

      try {
         // Crear un defecto MimeMessage objetos MimeMessage mensaje nuevo = MimeMessage (sesión);
         // Establecer el campo De: cabecera de la cabecera.
         message.setFrom (nueva InternetAddress (de));
         // Establecer Para: campo de cabecera de la cabecera.
         message.addRecipient (Message.RecipientType.TO,
                                  nueva InternetAddress (a));
         // Establecer el campo Asunto: cabecera
         message.setSubject ( "Esta es la línea de asunto!");

         // Establecer el mensaje HTML tamaño del contenido message.setContent limitada actual ( "<h1> Este es el mensaje real </ h1>",
                            "Text / html");
         // Enviar el mensaje Transport.send (mensaje);
         String title = "email";
         res de cadena = "mensajes enviados con éxito ...";
         Doctype Cadena = "\ n <HTML! DOCTYPE>";
         out.println (+ docType
         "<Html> \ n" +
         "<Head> <title>" + + título "</ title> </ head> \ n" +
         "<Body bgcolor = \" # f0f0f0 \ "> \ n" +
         "<H1 align = \" centro \ ">" + + título "</ h1> \ n" +
         "<P align = \" centro \ ">" + res + "</ p> \ n" +
         "</ Body> </ html>");
      } Catch (MessagingException mex) {
         mex.printStackTrace ();
      }
   }
} 

Compilar y ejecutar el servlet anteriormente, enviar mensajes HTML en un ID de correo electrónico determinada.

Enviar archivos adjuntos en el correo electrónico

Los siguientes ejemplos envíe un correo electrónico con un archivo adjunto en el equipo será. Esto supone que suordenador local se conecta al soporte de Internet y correo electrónico.Al tiempo que garantiza que los paquetes de correo electrónico de la API de Java y el paquete de JAF todos los archivos JAR en el CLASSPATH están disponibles.

// Nombre del archivo SendEmail.java
import java.io. *;
import java.util * .;
javax.servlet importación * .;
javax.servlet.http importación * .;
javax.mail importación * .;
javax.mail.internet importación * .;
javax.activation importación * .;
 
clase pública se extiende SendEmail HttpServlet {
    
  pública doGet vacío (solicitud de HttpServletRequest,
                    HttpServletResponse respuesta)
            lanza ServletException, IOException
  {
      // ID de correo electrónico del destinatario
      Cadena a = "[email protected]";
 
      // ID de correo electrónico del remitente
      Cadena desde = "[email protected]";
 
      // Digamos que usted envía host de correo electrónico String = "localhost" desde el host local;
 
      // Obtener propiedades del sistema Características del System.getProperties = ();
 
      // Establecer un properties.setProperty servidor de correo ( "mail.smtp.host", de acogida);
 
      // Obtener el objeto Session Sesión de sesión por defecto = Session.getDefaultInstance (propiedades);
      
	  // Establecer el tipo de contenido de la respuesta response.setContentType ( "text / html; charset = UTF-8");
      PrintWriter cabo response.getWriter = ();

       try {
         // Crear un defecto MimeMessage objetos MimeMessage mensaje nuevo = MimeMessage (sesión);
 
         // Establecer el campo De: cabecera de la cabecera.
         message.setFrom (nueva InternetAddress (de));
 
         // Establecer Para: campo de cabecera de la cabecera.
         message.addRecipient (Message.RecipientType.TO,
                                  nueva InternetAddress (a));
 
         // Establecer el campo Asunto: cabecera
         message.setSubject ( "Esta es la línea de asunto!");
 
         // Crear un mensaje de parte BodyPart messageBodyPart = new MimeBodyPart ();
 
         // Llenar un mensaje messageBodyPart.setText ( "Este es el cuerpo del mensaje");
         
         // Crear un multi-parte multimensaje multiparte = new MimeMultipart ();
 
         // Establecer las partes del mensaje de texto multipart.addBodyPart (messageBodyPart);
 
         // La segunda parte es un accesorio messageBodyPart = new MimeBodyPart ();
         string filename = "archivo.txt";
         fuente de origen de datos = new FileDataSource (nombre de archivo);
         messageBodyPart.setDataHandler (nueva DataHandler (fuente));
         messageBodyPart.setFileName (nombre de archivo);
         multipart.addBodyPart (messageBodyPart);
 
         // Enviar un mensaje pieza completa message.setContent (multiparte);
 
         // Enviar el mensaje Transport.send (mensaje);
         String title = "email";
         res de cadena = "Enviar correo electrónico correctamente ...";
         Doctype Cadena = "\ n <HTML! DOCTYPE>";
         out.println (+ docType
         "<Html> \ n" +
         "<Head> <title>" + + título "</ title> </ head> \ n" +
         "<Body bgcolor = \" # f0f0f0 \ "> \ n" +
         "<H1 align = \" centro \ ">" + + título "</ h1> \ n" +
         "<P align = \" centro \ ">" + res + "</ p> \ n" +
         "</ Body> </ html>");
      } Catch (MessagingException mex) {
         mex.printStackTrace ();
      }
   }
} 

Compilar y ejecutar el servlet anteriormente, enviar mensajes con archivos adjuntos en un correo electrónico de identificación dado.

sección de la autenticación de usuarios

Si es necesario proporcionar la dirección de correo ID de usuario y contraseña del servidor de autenticación, se pueden establecer las siguientes propiedades:

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

El resto del mecanismo de entrega de correo electrónico es consistente con lo anterior explican.