Latest web development tutorials

JSP Enviar correo

Aunque el uso de JSP para el mensaje que envía la función es simple, pero requiere API JavaMail, y la necesidad de instalar JavaBeans Activation Framework.

  • 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 raíz, verá una serie de paquete frasco. El paquete de paquetes mail.jar y activation.jar añade la variable CLASSPATH.

Enviar un simple correo

Este ejemplo muestra cómo desde su máquina para enviar un mensaje simple. Se supone que localhost ya está conectado a la red y la capacidad de enviar un mensaje. Mientras tanto, una vez más confirmar paquetes mail.jar y el paquete activation.jar ha sido añadido a 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;
   // 收件人的电子邮件
   String to = "[email protected]";

   // 发件人的电子邮件
   String from = "[email protected]";

   // 假设你是从本地主机发送电子邮件
   String host = "localhost";

   // 获取系统属性对象
   Properties properties = System.getProperties();

   // 设置邮件服务器
   properties.setProperty("mail.smtp.host", host);

   // 获取默认的Session对象。
   Session mailSession = Session.getDefaultInstance(properties);

   try{
      // 创建一个默认的MimeMessage对象。
      MimeMessage message = new MimeMessage(mailSession);
      // 设置 From: 头部的header字段
      message.setFrom(new InternetAddress(from));
      // 设置 To: 头部的header字段
      message.addRecipient(Message.RecipientType.TO,
                               new InternetAddress(to));
      // 设置 Subject: header字段
      message.setSubject("This is the Subject Line!");
      // 现在设置的实际消息
      message.setText("This is actual message");
      // 发送消息
      Transport.send(message);
      result = "Sent message successfully....";
   }catch (MessagingException mex) {
      mex.printStackTrace();
      result = "Error: unable to send message....";
   }
%>
<html>
<head>
<title>Send Email using JSP</title>
</head>
<body>
<center>
<h1>Send Email using JSP</h1>
</center>
<p align="center">
<% 
   out.println("Result: " + result + "\n");
%>
</p>
</body>
</html>

Ahora visite http: // localhost: 8080 / SendEmail.jsp, se enviará un mensaje a [email protected] y muestra los siguientes resultados:

Send Email using JSP
Result: Sent message successfully....

Si desea enviar un mensaje a muchas personas, los métodos enumerados a continuación pueden utilizarse para especificar más de una dirección de correo electrónico:

void addRecipients(Message.RecipientType type, 
                   Address[] addresses)
throws MessagingException

Descripción de los parámetros son los siguientes:

  • Tipo: Este valor se establece en A, CC o CCO. representantes de CC de una copia, BCC para la copia negro el ejemplo utilizado en el programa es.
  • direcciones: Esta dirección de correo electrónico es una matriz, método cuando es necesaria la dirección de correo electrónico especificada InternetAddress ().

Enviar un correo electrónico HTML

En este ejemplo se envía un simple mensajes HTML. Se supone que ya se ha conectado a la red de host local y la capacidad de enviar mensajes. Mientras tanto, una vez más confirmar paquetes mail.jar y el paquete activation.jar ha sido añadido a la variable CLASSPATH.

Este ejemplo es muy similar a la del ejemplo anterior, pero en este caso utilizamos setContent () método, el "text / html" como el segundo parámetro pasado a él para indicar que el mensaje contiene el 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;
   // 收件人的电子邮件
   String to = "[email protected]";

   // 发件人的电子邮件
   String from = "[email protected]";

   // 假设你是从本地主机发送电子邮件
   String host = "localhost";

   // 获取系统属性对象
   Properties properties = System.getProperties();

   // 设置邮件服务器
   properties.setProperty("mail.smtp.host", host);

   // 获取默认的Session对象。
   Session mailSession = Session.getDefaultInstance(properties);

   try{
      // 创建一个默认的MimeMessage对象。
      MimeMessage message = new MimeMessage(mailSession);
      // 设置 From: 头部的header字段
      message.setFrom(new InternetAddress(from));
      // 设置 To: 头部的header字段
      message.addRecipient(Message.RecipientType.TO,
                               new InternetAddress(to));
      // 设置 Subject: header字段
      message.setSubject("This is the Subject Line!");
     
      // 设置 HTML消息
      message.setContent("<h1>This is actual message</h1>",
                            "text/html" );
      // 发送消息
      Transport.send(message);
      result = "Sent message successfully....";
   }catch (MessagingException mex) {
      mex.printStackTrace();
      result = "Error: unable to send message....";
   }
%>
<html>
<head>
<title>Send HTML Email using JSP</title>
</head>
<body>
<center>
<h1>Send Email using JSP</h1>
</center>
<p align="center">
<% 
   out.println("Result: " + result + "\n");
%>
</p>
</body>
</html>

Ahora usted puede tratar de utilizar más de archivo JSP para enviar mensajes de correo electrónico HTML.


Accesorios incluidos en el mensaje

Este ejemplo muestra cómo enviar un mensaje 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;
   // 收件人的电子邮件
   String to = "[email protected]";

   // 发件人的电子邮件
   String from = "[email protected]";

   // 假设你是从本地主机发送电子邮件
   String host = "localhost";

   // 获取系统属性对象
   Properties properties = System.getProperties();

   // 设置邮件服务器
   properties.setProperty("mail.smtp.host", host);

   // 获取默认的Session对象。
   Session mailSession = Session.getDefaultInstance(properties);

   try{
      // 创建一个默认的MimeMessage对象。
      MimeMessage message = new MimeMessage(mailSession);

      // 设置 From: 头部的header字段
      message.setFrom(new InternetAddress(from));

      // 设置 To: 头部的header字段
      message.addRecipient(Message.RecipientType.TO,
                               new InternetAddress(to));

      // 设置 Subject: header字段
      message.setSubject("This is the Subject Line!");

      // 创建消息部分
      BodyPart messageBodyPart = new MimeBodyPart();

      // 填充消息
      messageBodyPart.setText("This is message body");
      
      // 创建多媒体消息
      Multipart multipart = new MimeMultipart();

      // 设置文本消息部分
      multipart.addBodyPart(messageBodyPart);

      // 附件部分
      messageBodyPart = new MimeBodyPart();
      String filename = "file.txt";
      DataSource source = new FileDataSource(filename);
      messageBodyPart.setDataHandler(new DataHandler(source));
      messageBodyPart.setFileName(filename);
      multipart.addBodyPart(messageBodyPart);

      // 发送完整消息
      message.setContent(multipart );

      // 发送消息
      Transport.send(message);
      String title = "Send Email";
      result = "Sent message successfully....";
   }catch (MessagingException mex) {
      mex.printStackTrace();
      result = "Error: unable to send message....";
   }
%>
<html>
<head>
<title>Send Attachement Email using JSP</title>
</head>
<body>
<center>
<h1>Send Attachement Email using JSP</h1>
</center>
<p align="center">
<% 
   out.println("Result: " + result + "\n");
%>
</p>
</body>
</html>

sección de la autenticación de usuarios

Si el servidor de correo requiere un nombre de usuario y la contraseña para la autenticación de usuario, se puede establecer como el siguiente:

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

Utilice el formulario para enviar un mensaje

El uso de un formulario HTML para recibir un correo electrónico y obtener toda la información de solicitud por correo electrónico a:

String to = request.getParameter("to");
String from = request.getParameter("from");
String subject = request.getParameter("subject");
String messageText = request.getParameter("body");

Después de obtener esta información, puede utilizar los ejemplos mencionados arriba para enviar el correo.