1. Trang chủ
  2. » Thể loại khác

gui email trong servlet

5 163 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 235,48 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Gửi Email trong Servlet Để gửi một Email bởi sử dụng một Servlet là khá đơn giản.. Gửi một Email đơn giản trong Servlet Ví dụ sau minh họa cách gửi một Email đơn giản từ thiết bị của bạ

Trang 1

Gửi Email trong Servlet

Để gửi một Email bởi sử dụng một Servlet là khá đơn giản Nhưng trước hết bạn cần cài

đặtJavaMail API và Java Activation Framework (JAF) trên thiết bị

• Bạn có thể tải phiên bản mới nhất của JavaMail (Version 1.2) từ Website chuẩn của

Java

• Bạn có thể tải phiên bản mới nhất của JAF (Version 1.1.1) từ Website chuẩn của

Java

Tải và unzip các file này, trong các thư mục cấp độ cao nhất Bạn cần thêm các file

làmail.jar và activation.java vào trong CLASSPATH của bạn

Gửi một Email đơn giản trong Servlet

Ví dụ sau minh họa cách gửi một Email đơn giản từ thiết bị của bạn Tại đây giả sử

rằnglocalhost của bạn đã kết nối internet và có khả năng để gửi một Email Ngoài ra, đảm

bảo rằng, tất cả các jar file từ Java Email API package và JAF package là có sẵn trong

CLASSPATH

// File Name SendEmail.java import java.io.*; import java.util.*; import

javax.servlet.*; import javax.servlet.http.*; import javax.mail.*; import

javax.mail.internet.*; import javax.activation.*; public class SendEmail

extends HttpServlet{ public void doGet(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException

{ // Recipient's email ID needs to be mentioned String to =

"abcd@gmail.com"; // Sender's email ID needs to be mentioned

String from "web@gmail.com"; // Assuming you are sending email from

localhost String host = "localhost"; // Get system properties

Properties properties = System.getProperties(); // Setup mail server

properties.setProperty("mail.smtp.host", host); // Get the default

Session object Session session = Session.getDefaultInstance(properties);

// Set response content type

response.setContentType("text/html"); PrintWriter out

response.getWriter(); try{ // Create a default MimeMessage

object MimeMessage message = new MimeMessage(session); //

Set From: header field of the header message.setFrom(new

InternetAddress(from)); // Set To: header field of the header

message.addRecipient(Message.RecipientType.TO,

new InternetAddress(to)); // Set Subject: header field

message.setSubject("This is the Subject Line!"); // Now set the actual

message message.setText("This is actual message"); // Send

message Transport.send(message); String title = "Send Email";

String res = "Sent message successfully "; String docType =

Trang 2

"<!doctype html public \"-//w3c//dtd html 4.0 "

"transitional//en\">\n"; out.println(docType + "<html>\n"

"<head><title>" title + "</title></head>\n" "<body

bgcolor=\"#f0f0f0\">\n" "<h1 align=\"center\">" title + "</h1>\n"

+ "<p align=\"center\">" res + "</p>\n"

"</body></html>"); }catch MessagingException mex) {

mex.printStackTrace(); } } }

Biên dịch Servlet trên và tạo các entry sau trong web.xml:

<servlet> <servlet-name>SendEmail</servlet-name> <servlet

-class>SendEmail</servlet-class> </servlet> <servlet-mapping> <servlet

-name>SendEmail</servlet-name> <url-pattern>/SendEmail</url-pattern>

</servlet-mapping>

Bây giờ gọi Servlet trên bởi sử dụng URL là http://localhost:8080/SendEmail sẽ gửi một

Email với Email ID đã cho là abcd@gmail.com và sẽ hiển thị phản hồi sau:

Send Email

Sent message successfully

Nếu bạn muốn gửi một Email tới nhiều người nhận, thì phương thức sau sẽ được sử dụng

để xác định nhiều Email ID

void addRecipients(Message.RecipientType type, Address[]

addresses) throws MessagingException

Miêu tả các tham số:

type: Nó sẽ được thiết lập là TO, CC hoặc BCC Với CC biểu diễn Carbon Copy và

BCC biểu diễn Black Carbon Copy Ví dụ: Message.RecipientType.TO

addresses: Đây là mảng các Email ID Bạn sẽ cần sử dụng phương

thứcInternetAddress() trong khi xác định các Email ID đó

Gửi một HTML Email trong Servlet

Sau đây là một ví dụ minh họa cách gửi một HTML Email từ thiết bị của bạn bởi sử dụng

Servlet Tại đây giả sử rằng localhost của bạn đã kết nối internet và có khả năng để gửi

Trang 3

một Email Ngoài ra, đảm bảo rằng, tất cả các jar file từ Java Email API package và JAF

package là có sẵn trong CLASSPATH

Ví dụ này tương tự như ví dụ trước đó, ngoại trừ, chúng ta sử dụng phương thức

setContent() để thiết lập nội dung của tham số thứ hai là “text/html” để xác định rằng HTML

content đó được bao trong thông báo

Sử dụng ví dụ này, bạn có thể gửi một HTML email lớn bao nhiêu tùy thích

// File Name SendEmail.java import java.io.*; import java.util.*; import

javax.servlet.*; import javax.servlet.http.*; import javax.mail.*; import

javax.mail.internet.*; import javax.activation.*; public class SendEmail

extends HttpServlet{ public void doGet(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException

{ // Recipient's email ID needs to be mentioned String to =

"abcd@gmail.com"; // Sender's email ID needs to be mentioned

String from "web@gmail.com"; // Assuming you are sending email from

localhost String host = "localhost"; // Get system properties

Properties properties = System.getProperties(); // Setup mail server

properties.setProperty("mail.smtp.host", host); // Get the default

Session object Session session = Session.getDefaultInstance(properties);

// Set response content type

response.setContentType("text/html"); PrintWriter out

response.getWriter(); try{ // Create a default MimeMessage

object MimeMessage message = new MimeMessage(session); //

Set From: header field of the header message.setFrom(new

InternetAddress(from)); // Set To: header field of the header

message.addRecipient(Message.RecipientType.TO,

new InternetAddress(to)); // Set Subject: header field

message.setSubject("This is the Subject Line!"); // Send the actual

HTML message, as big as you like message.setContent("<h1>This is

actual message</h1>", "text/html" ); //

Send message Transport.send(message); String title = "Send

Email"; String res = "Sent message successfully "; String

docType = "<!doctype html public \"-//w3c//dtd html 4.0 "

"transitional//en\">\n"; out.println(docType + "<html>\n"

"<head><title>" title + "</title></head>\n" "<body

bgcolor=\"#f0f0f0\">\n" "<h1 align=\"center\">" title + "</h1>\n"

+ "<p align=\"center\">" res + "</p>\n"

"</body></html>"); }catch MessagingException mex) {

mex.printStackTrace(); } } }

Biên dịch và chạy Servlet trên để gửi thông báo HTML trên một Email ID đã cho

Gửi Email với đính kèm trong Servlet

Ví dụ sau để gửi một Email với Attachment từ thiết bị của bạn bởi sử dụng Servlet Giả

sửlocalhost của bạn kết nối internet và có khả năng để gửi một Email

Trang 4

// File Name SendEmail.java import java.io.*; import java.util.*; import

javax.servlet.*; import javax.servlet.http.*; import javax.mail.*; import

javax.mail.internet.*; import javax.activation.*; public class SendEmail

extends HttpServlet{ public void doGet(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException

{ // Recipient's email ID needs to be mentioned String to = "abcd@gmail.com"; // Sender's email ID needs to be mentioned

String from "web@gmail.com"; // Assuming you are sending email from localhost String host = "localhost"; // Get system properties

Properties properties = System.getProperties(); // Setup mail server

properties.setProperty("mail.smtp.host", host); // Get the default Session object Session session = Session.getDefaultInstance(properties);

// Set response content type

response.setContentType("text/html"); PrintWriter out response.getWriter(); try{ // Create a default MimeMessage object MimeMessage message = new MimeMessage(session); //

Set From: header field of the header message.setFrom(new InternetAddress(from)); // Set To: header field of the header

message.addRecipient(Message.RecipientType.TO,

new InternetAddress(to)); // Set Subject: header field

message.setSubject("This is the Subject Line!"); // Create the message part BodyPart messageBodyPart = new MimeBodyPart();

// Fill the message messageBodyPart.setText("This is message body");

// Create a multipar message Multipart multipart = new MimeMultipart(); // Set text message part

multipart.addBodyPart(messageBodyPart); // Part two is attachment

messageBodyPart = new MimeBodyPart(); String filename = "file.txt";

DataSource source = new FileDataSource(filename);

messageBodyPart.setDataHandler(new DataHandler(source));

messageBodyPart.setFileName(filename);

multipart.addBodyPart(messageBodyPart); // Send the complete message parts message.setContent(multipart ); // Send message

Transport.send(message); String title = "Send Email"; String res = "Sent message successfully "; String docType =

"<!doctype html public \"-//w3c//dtd html 4.0 "

"transitional//en\">\n"; out.println(docType + "<html>\n"

"<head><title>" title + "</title></head>\n" "<body bgcolor=\"#f0f0f0\">\n" "<h1 align=\"center\">" title + "</h1>\n" + "<p align=\"center\">" res + "</p>\n"

"</body></html>"); }catch MessagingException mex) {

mex.printStackTrace(); } } }

Biên dịch và chạy Servlet trên để gửi mọt file như là một đính kèm cùng với một thông báo

trên một Email ID đã cho

Phần User Authentication

Nếu cần thiết để cung cấp User ID và Password để gửi Email đó tới Server cho mục đích

xác nhận, thì bạn có thể thiết lập các thuộc tính như sau:

Trang 5

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

"mypwd");

Phần còn lại của kỹ thuật gửi Email là tương tự như ví dụ trên

Ngày đăng: 02/12/2017, 22:24

TỪ KHÓA LIÊN QUAN