Latest web development tutorials

JSP Kirim Surat

Meskipun penggunaan JSP untuk pengiriman pesan fungsi sederhana, tetapi membutuhkan JavaMail API, dan perlu menginstal JavaBean Aktivasi Kerangka.

  • Anda dapat men-download versi terbaru dari Java yang JavaMail , membuka sisi kanan halaman ada link Download, klik di atasnya untuk men-download.
  • Anda dapat men-download versi terbaru dari Java (Versi 1.1.1) JAF .

Anda juga dapat menggunakan situs untuk memberikan link download:

Download dan unzip file dalam direktori root, Anda akan melihat serangkaian paket jar. Paket mail.jar dan paket activation.jar menambahkan variabel CLASSPATH.

Kirim surat sederhana

Contoh ini menunjukkan bagaimana dari mesin Anda untuk mengirim pesan sederhana. Ini mengasumsikan bahwa localhost sudah terhubung ke jaringan dan kemampuan untuk mengirim pesan. Sementara itu, sekali lagi mengkonfirmasi paket mail.jar dan paket activation.jar telah ditambahkan ke variabel 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>

Sekarang kunjungi http: // localhost: 8080 / SendEmail.jsp, ia akan mengirim pesan ke [email protected] dan menampilkan hasil sebagai berikut:

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

Jika Anda ingin mengirim pesan ke banyak orang, metode yang tercantum di bawah ini dapat digunakan untuk menentukan lebih dari satu alamat e-mail:

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

Deskripsi parameter adalah sebagai berikut:

  • Jenis: Nilai ini akan diatur ke TO, CC, atau BCC. perwakilan CC salinan, BCC untuk salinan hitam contoh yang digunakan dalam program ini adalah TO.
  • alamat: Alamat email ini adalah sebuah array, metode ketika alamat yang ditentukan e-mail yang diperlukan InternetAddress ().

Kirim e-mail HTML

Contoh ini mengirimkan pesan HTML sederhana. Ini mengasumsikan bahwa Anda telah terhubung ke jaringan localhost dan kemampuan untuk mengirim pesan. Sementara itu, sekali lagi mengkonfirmasi paket mail.jar dan paket activation.jar telah ditambahkan ke variabel CLASSPATH.

Contoh ini sangat mirip dengan contoh sebelumnya, tetapi dalam kasus ini kita menggunakan setContent () metode, yang "text / html" sebagai parameter kedua berlalu untuk itu untuk menunjukkan bahwa pesan berisi konten 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>

Sekarang Anda dapat mencoba untuk menggunakan lebih dari berkas JSP untuk mengirim HTML pesan e-mail.


Aksesoris termasuk dalam pesan

Contoh ini menunjukkan bagaimana untuk mengirim pesan yang berisi lampiran.

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

Bagian otentikasi pengguna

Jika mail server memerlukan nama pengguna dan password untuk otentikasi pengguna, Anda dapat mengatur seperti berikut:

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

Gunakan formulir untuk mengirim pesan

Menggunakan bentuk HTML untuk menerima email dan mendapatkan semua informasi melalui e-mail permintaan untuk:

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

Setelah mendapatkan informasi ini, Anda dapat menggunakan contoh yang disebutkan di atas untuk mengirim email.