Latest web development tutorials

JSP Send Mail

Bien que l'utilisation de JSP pour le message fonction d'envoi est simple, mais nécessite API JavaMail, et la nécessité d'installer Activation Framework JavaBean.

  • 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 racine, vous verrez une série de package jar. Les forfaits mail.jar et package activation.jar ajouté la variable CLASSPATH.

Envoyer un simple mail

Cet exemple montre comment de votre machine pour envoyer un message simple. Il suppose que l'hôte local est déjà connecté au réseau et la capacité d'envoyer un message. En attendant, confirmer une nouvelle fois les paquets de mail.jar et package activation.jar a été ajouté à 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>

Maintenant, visitez http: // localhost: 8080 / SendEmail.jsp, il enverra un message à [email protected] et affiche les résultats suivants:

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

Si vous voulez envoyer un message à beaucoup de gens, les méthodes énumérées ci-dessous peuvent être utilisés pour spécifier plus d'une adresse e-mail:

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

Description des paramètres sont les suivants:

  • Type: Cette valeur sera réglé sur TO, CC, ou BCC. représentants du CC, une copie, BCC pour copie en noir l'exemple utilisé dans le programme est TO.
  • adresses: Cette adresse e-mail est un tableau, la méthode lorsque l'adresse e-mail spécifiée est requise InternetAddress ().

Envoyer un e-mail HTML

Cet exemple envoie un simple message HTML. Il suppose que vous avez déjà connecté au réseau de localhost et la possibilité d'envoyer des messages. En attendant, confirmer une nouvelle fois les paquets de mail.jar et package activation.jar a été ajouté à la variable CLASSPATH.

Cet exemple est très similaire à l'exemple précédent, mais dans ce cas, nous utilisons setContent (), la méthode "text / html" comme second paramètre qui lui est passé pour indiquer que le message contient le contenu 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>

Maintenant, vous pouvez essayer d'utiliser plus de fichier JSP pour envoyer HTML message électronique.


Accessoires inclus dans le message

Cet exemple montre comment envoyer un message contenant une pièce jointe.

<%@ 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>

section d'authentification de l'utilisateur

Si le serveur de messagerie requiert un nom d'utilisateur et mot de passe pour l'authentification de l'utilisateur, vous pouvez définir comme le suivant:

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

Utilisez le formulaire pour envoyer un message

L'utilisation d'un formulaire HTML pour recevoir un e-mail et obtenir toutes les informations sur demande e-mail à:

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

Après avoir obtenu ces informations, vous pouvez utiliser les exemples mentionnés ci-dessus pour envoyer du courrier.