Latest web development tutorials

JSP Написать письмо

Хотя использование JSP для отправки сообщений функции проста, но требует JavaMail API, и необходимо установить JavaBean Activation Framework.

  • Вы можете скачать последнюю версию Java на JavaMail , откройте правую сторону страницы есть ссылка загрузки, нажмите на нее , чтобы загрузить.
  • Вы можете скачать последнюю версию Java (версия 1.1.1) JAF .

Вы также можете использовать сайт, чтобы обеспечить ссылку для скачивания:

Скачать и распаковать файлы в корневом каталоге, вы увидите серию пакета банку. Mail.jar пакетов и пакет activation.jar добавил переменную CLASSPATH.

Отправить простую почту

Этот пример показывает, как от вашей машины, чтобы отправить простое сообщение. Она предполагает, что локальный уже подключен к сети и возможность отправить сообщение. В то же время, еще раз подтверждают mail.jar пакетов и пакет activation.jar был добавлен в переменную 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>

Теперь посетите HTTP: // локальный: 8080 / SendEmail.jsp, он пошлет сообщение для [email protected] и отображает следующие результаты:

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

Если вы хотите отправить сообщение для многих людей, методы, перечисленные ниже, могут быть использованы для определения более одного адреса электронной почты:

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

Описание параметров следующим образом:

  • Тип: Это значение будет установлено значение TO, CC или BCC. Представители CC копия, BCC для черной копии пример используется в программе TO.
  • адреса: Этот адрес электронной почты является массивом, метод, когда указанный адрес электронной почты требуется InternetAddress ().

Отправить HTML электронной почты

Этот пример отправляет простой HTML-сообщения. Предполагается, что вы уже подключены к сети и локальный возможность отправлять сообщения. В то же время, еще раз подтверждают mail.jar пакетов и пакет activation.jar был добавлен в переменную CLASSPATH.

Этот пример очень похож на предыдущий, но в данном случае мы используем setContent () метод, "Текст / HTML" в качестве второго параметра, переданного ему, чтобы указать, что сообщение содержит содержимое 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>

Теперь вы можете попробовать использовать более JSP-файл для отправки 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!");

      // 创建消息部分
      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>

раздел Аутентификация пользователя

Если почтовый сервер требует имя пользователя и пароль для аутентификации пользователя, вы можете установить такие как следующие:

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

Используйте форму для отправки сообщения

Используя форму HTML, чтобы получить по электронной почте и получить всю необходимую информацию по электронной почте запрос по адресу:

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

После получения этой информации, вы можете использовать примеры, упомянутые выше для отправки почты.