English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Aunque es fácil implementar la función de envío de correo electrónico utilizando JSP, se necesita el API JavaMail y se debe instalar el JavaBean Activation Framework.
Puede descargar la última versión de Java desde el sitio web de Java JavaMail, abra la página de la derecha hay un Descargas haga clic en él para descargar.
Puede descargar la última versión de Java desde el sitio web de Java JAF (versión 1.1.1).
Descargue y descomprima estos archivos, en la carpeta raíz, verá una serie de paquetes jar. Añada el paquete mail.jar y el paquete activation.jar a la variable de entorno CLASSPATH.
Este ejemplo muestra cómo enviar un correo electrónico simple desde su máquina. Supone que localhost ya está conectado a la red y tiene la capacidad de enviar un correo electrónico. Al mismo tiempo, asegúrese de que el paquete mail.jar y el paquete activation.jar ya se han añadido a la variable de entorno 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; // Correo electrónico del destinatario String to = "[email protected]"; // Correo electrónico del remitente String from = "[email protected]"; // Supongamos que estás enviando un correo electrónico desde el host local String host = "localhost"; // Obtener el objeto de propiedades del sistema Properties properties = System.getProperties(); // Configurar el servidor de correo properties.setProperty("mail.smtp.host", host); // Obtener el objeto Session predeterminado. Session mailSession = Session.getDefaultInstance(properties); try{ // Crear un objeto MimeMessage predeterminado. MimeMessage message = new MimeMessage(mailSession); // Establecer campo de encabezado From: message.setFrom(new InternetAddress(from)); // Establecer campo de encabezado To: message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Establecer campo de encabezado Subject: message.setSubject("¡Este es la Línea de Asunto!"); // Ahora está configurado el mensaje real message.setText("Este es el mensaje real"); // Enviar mensaje Transport.send(message); result = "Mensaje enviado con éxito...."; }catch (MessagingException mex) { mex.printStackTrace(); result = "Error: No se pudo enviar el mensaje...."; } %> <html> <head> <title>Enviar correo electrónico utilizando JSP</title> </head> <body> <center> <h1>Enviar correo electrónico usando JSP</h1> </center> <p align="center"> <% out.println("Result: " + result + "\n"); %> </p> </body> </html>
Ahora acceda a http://localhost:8080/SendEmail.jsp, que enviará un correo electrónico a [email protected] y mostrará el siguiente resultado:
Enviar correo electrónico utilizando JSP Resultado: Mensaje enviado con éxito....
Si desea enviar un correo electrónico a varias personas, los métodos enumerados a continuación se pueden usar para especificar múltiples direcciones de correo electrónico:
void addRecipients(Message.RecipientType type, Address[] addresses) lanza MessagingException
La descripción de los parámetros es la siguiente:
type: Este valor se establecerá en TO (destinatario), CC o BCC. CC significa Carbon Copy (copia carbónica), BCC significa Carbon Copy Ciego (copia carbónica ciega). El ejemplo de programa utiliza TO.
addresses: Esto es un array de direcciones de correo electrónico, cuando se especifica una dirección de correo electrónico, se debe usar el método InternetAddress().
Este ejemplo envía un correo electrónico HTML simple. Supone que su localhost ya está conectado a la red y tiene la capacidad de enviar correos electrónicos. Al mismo tiempo, asegúrese de que el paquete mail.jar y el paquete activation.jar ya se han añadido a la variable de entorno CLASSPATH.
Esta instancia es muy similar a la anterior, pero en esta ocasión utilizamos el método setContent(), pasando "text/html" como segundo parámetro para indicar que el mensaje contiene contenido 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; // Correo electrónico del destinatario String to = "[email protected]"; // Correo electrónico del remitente String from = "[email protected]"; // Supongamos que estás enviando un correo electrónico desde el host local String host = "localhost"; // Obtener el objeto de propiedades del sistema Properties properties = System.getProperties(); // Configurar el servidor de correo properties.setProperty("mail.smtp.host", host); // Obtener el objeto Session predeterminado. Session mailSession = Session.getDefaultInstance(properties); try{ // Crear un objeto MimeMessage predeterminado. MimeMessage message = new MimeMessage(mailSession); // Establecer campo de encabezado From: message.setFrom(new InternetAddress(from)); // Establecer campo de encabezado To: message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Establecer campo de encabezado Subject: message.setSubject("¡Este es la Línea de Asunto!"); // Establecer mensaje HTML message.setContent("<h1>Este es el mensaje real</h1>", "text/html" ); // Enviar mensaje Transport.send(message); result = "Mensaje enviado con éxito...."; }catch (MessagingException mex) { mex.printStackTrace(); result = "Error: No se pudo enviar el mensaje...."; } %> <html> <head> <title>Enviar correo electrónico HTML usando JSP</title> </head> <body> <center> <h1>Enviar correo electrónico usando JSP</h1> </center> <p align="center"> <% out.println("Result: " + result + "\n"); %> </p> </body> </html>
Ahora puedes intentar usar el archivo JSP anterior para enviar un correo electrónico con mensaje HTML.
Esta instancia nos muestra cómo enviar un correo electrónico que contiene un archivo adjunto.
<%@ page import="java.io.*,java.util.*,javax.mail.*"%> <%@ page import="javax.mail.internet.*,javax.activation.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %> <% String result; // Correo electrónico del destinatario String to = "[email protected]"; // Correo electrónico del remitente String from = "[email protected]"; // Supongamos que estás enviando un correo electrónico desde el host local String host = "localhost"; // Obtener el objeto de propiedades del sistema Properties properties = System.getProperties(); // Configurar el servidor de correo properties.setProperty("mail.smtp.host", host); // Obtener el objeto Session predeterminado. Session mailSession = Session.getDefaultInstance(properties); try{ // Crear un objeto MimeMessage predeterminado. MimeMessage message = new MimeMessage(mailSession); // Establecer campo de encabezado From: message.setFrom(new InternetAddress(from)); // Establecer campo de encabezado To: message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // Establecer campo de encabezado Subject: message.setSubject("¡Este es la Línea de Asunto!"); // Crear parte de mensaje BodyPart messageBodyPart = new MimeBodyPart(); // Rellenar mensaje messageBodyPart.setText("Este es el cuerpo del mensaje"); // Crear mensaje multimedia Multipart multipart = new MimeMultipart(); // Configurar parte de texto multipart.addBodyPart(messageBodyPart); // Parte adjunta messageBodyPart = new MimeBodyPart(); String filename = "file.txt"; DataSource source = new FileDataSource(filename); messageBodyPart.setDataHandler(new DataHandler(source)); messageBodyPart.setFileName(filename); multipart.addBodyPart(messageBodyPart); // Enviar mensaje completo message.setContent(multipart); // Enviar mensaje Transport.send(message); String title = "Enviar Correo Electrónico"; result = "Mensaje enviado con éxito...."; }catch (MessagingException mex) { mex.printStackTrace(); result = "Error: No se pudo enviar el mensaje...."; } %> <html> <head> <title>Enviar Adjunto de Correo Electrónico utilizando JSP</title> </head> <body> <center> <h1>Enviar correo adjunto utilizando JSP</h1> </center> <p align="center"> <% out.println("Result: " + result + "\n"); %> </p> </body> </html>
Si el servidor de correo requiere nombre de usuario y contraseña para la autenticación de usuarios, puede configurarse de la siguiente manera:
properties.setProperty("mail.user", "myuser"); properties.setProperty("mail.password", "mypwd");
Reciba un correo electrónico utilizando un formulario HTML y obtenga toda la información del correo electrónico a través del objeto request:
String to = request.getParameter("to"); String from = request.getParameter("from"); String subject = request.getParameter("subject"); String messageText = request.getParameter("body");
Obtenida esta información, puede usar el ejemplo mencionado anteriormente para enviar correos electrónicos.