Latest web development tutorials

JSP Mail senden

Obwohl die Verwendung von JSP für die Nachrichtensendefunktion ist einfach, erfordert aber Java Mail API und müssen JavaBean Activation Framework zu installieren.

  • Sie können die neueste Version von Java herunterladen der Java Mail , öffnen Sie die rechte Seite der Seite gibt es einen Link Downloads, klicken Sie auf, um sie herunterzuladen.
  • Sie können die neueste Version von Java herunterladen (Version 1.1.1) JAF .

Sie können auch die Website nutzen Download-Link zur Verfügung zu stellen:

Downloaden und entpacken Sie die Dateien in das Root-Verzeichnis, finden Sie eine Reihe von Glas-Paket zu sehen. Die mail.jar Pakete und Paket activation.jar hinzugefügt CLASSPATH Variable.

Senden Sie eine einfache E-Mail

Dieses Beispiel zeigt, wie von Ihrem Gerät eine einfache Nachricht zu senden. Es wird davon ausgegangen, dass localhost bereits mit dem Netzwerk verbunden ist, und der Fähigkeit, eine Nachricht zu senden. In der Zwischenzeit noch einmal bestätigen mail.jar Pakete und activation.jar Paket hat die Variable CLASSPATH hinzugefügt.

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

Jetzt besuchen Sie http: // localhost: 8080 / SendEmail.jsp, wird es eine Nachricht an [email protected] senden und zeigt die folgenden Ergebnisse:

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

Wenn Sie eine Nachricht an viele Personen senden möchten, finden die folgenden Methoden können verwendet werden, um mehr als eine E-Mail-Adresse angeben:

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

Beschreibung der Parameter sind wie folgt:

  • Typ: Dieser Wert wird TO, CC oder BCC eingestellt werden. CC Vertreter eine Kopie, BCC für schwarze Kopie das Beispiel im Programm verwendet wird, um.
  • Adressen: Diese E-Mail-Adresse ist ein Array, wenn die angegebene E-Mail-Adresse ist erforderlich Internetadresse (Methode).

Senden Sie eine HTML-E-Mail

Dieses Beispiel sendet eine einfache HTML-Nachrichten. Er geht davon aus, dass Sie bereits mit dem Netzwerk von localhost und die Möglichkeit, Nachrichten zu senden, angeschlossen haben. In der Zwischenzeit noch einmal bestätigen mail.jar Pakete und activation.jar Paket hat die Variable CLASSPATH hinzugefügt.

Dieses Beispiel ist sehr ähnlich zu dem vorherigen Beispiel, aber in diesem Fall verwenden wir setContent () Methode, die "text / html" als zweiter Parameter an sie übergeben, um anzuzeigen, dass die Nachricht, die die HTML-Inhalt enthält.

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

Jetzt können Sie versuchen, mehr als JSP-Datei zu verwenden, HTML-E-Mail-Nachricht zu senden.


Zubehör in der Nachricht enthalten

Dieses Beispiel zeigt, wie eine Nachricht zu senden, die eine Anlage enthält.

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

Die Benutzerauthentifizierung Abschnitt

Wenn der Mail-Server einen Benutzernamen und ein Passwort für die Benutzerauthentifizierung erfordert, können Sie wie die folgenden ein:

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

Benutzen Sie das Formular eine Nachricht zu senden

Mit Hilfe eines HTML-Formular eine E-Mail zu empfangen und alle Informationen per E-Mail Anfrage erhalten:

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

Nach Erhalt dieser Informationen, können Sie die Beispiele oben E-Mail senden erwähnt verwenden.