Gửi Email trong JSP Để gửi một Email bởi sử dụng một JSP là khá đơn giản.. Gửi một Email đơn giản trong JSP Ví dụ sau minh họa cách gửi một Email đơn giản từ thiết bị của bạn.. Bây giờ,
Trang 1Gửi Email trong JSP
Để gửi một Email bởi sử dụng một JSP là khá đơn giản Nhưng
trước hết bạn cần cài đặt JavaMail 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 JavaBeans Activation
Framework JAF (Version 1.0.2) từ Website chuẩn của Java
Điện Lạnh Bách Khoa Hà Nội
Chuyên Sửa: Điều Hòa, Máy giặt, Tủ Lạnh, Bình
Nóng Lạnh
sửa điện lạnh 247
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 JSP
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ằng localhost 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
<%@ 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 = "abcd@gmail.com" ;
Trang 2// Sender's email ID needs to be mentioned
String from = "mcmohd@gmail.com" ;
String host = "localhost" ;
properties setProperty ( "mail.smtp.host" , host );
try {
// Create a default MimeMessage object.
MimeMessage message = new MimeMessage ( mailSession );
// 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 );
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" >
Trang 3<%
out println ( "Result: " + result + "\n" );
%>
</p>
</body>
</html>
Bây giờ, đặt code trên trong SendEmail.jsp file và gọi JSP này bởi sử dụng địa chỉ URL là http://localhost:8080/SendEmail.jsp, mà sẽ gửi
một Email tới Email ID đã cho là abcd@gmail.com và sẽ hiển thị
phản hồi sau:
Send Email using JSP
Result: 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ức InternetAddress() trong khi xác định các Email ID
đó
Gửi một HTML Email trong JSP
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 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
<%@ page import = "java.io.*,java.util.*,javax.mail.*" %>
Trang 4<%@ page
import = "javax.mail.internet.*,javax.activation.*" %>
<%@ page import = "javax.servlet.http.*,javax.servlet.*" %>
<%
String result ;
String to = "abcd@gmail.com" ;
String from = "mcmohd@gmail.com" ;
String host = "localhost" ;
properties setProperty ( "mail.smtp.host" , host );
try {
// Create a default MimeMessage object.
MimeMessage message = new MimeMessage ( mailSession );
// 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 );
result = "Sent message successfully " ;
} catch ( MessagingException mex ) {
mex printStackTrace ();
result = "Error: unable to send message " ;
}
Trang 5%>
<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>
Bây giờ, thử sử dụng JSP trên để gửi thông báo HTML trên một Email ID đã cho
Gửi Email với Attachment trong JSP
Đây là ví dụ để gửi Email cùng với một đính kèm từ thiết bị của bạn trong JSP:
<%@ 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 = "abcd@gmail.com" ;
String from = "mcmohd@gmail.com" ;
String host = "localhost" ;
properties setProperty ( "mail.smtp.host" , host );
Trang 6Session getDefaultInstance ( properties );
try {
// Create a default MimeMessage object.
MimeMessage message = new MimeMessage ( mailSession );
// 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
messageBodyPart setFileName ( filename );
multipart addBodyPart ( messageBodyPart );
// Send the complete message parts
message setContent ( multipart );
// Send message
Transport send ( message );
String title = "Send Email" ;
result = "Sent message successfully " ;
} catch ( MessagingException mex ) {
Trang 7mex 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>
Thử chạy JSP trên để gửi một file như là một Attachment 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 tới Email server cho mục đích xác nhận (authentication) thì bạn có thể thiết lập các thuộc tính này như sau:
props setProperty ( "mail.user" , "myuser" );
props setProperty ( "mail.password" , "mypwd" );
Rest of the email sending mechanism would remain as explained above
Sử dụng Form để gửi Email trong JSP Bạn có thể sử dụng HTML form để chấp nhận các tham số của email
và sau đó bạn có thể sử dụng đối tượng request để nhận tất cả
thông tin đó như sau:
String to = request getParameter ( "to" );
String from = request getParameter ( "from" );
String subject = request getParameter ( "subject" );
String messageText = request getParameter ( "body" );
Khi bạn có tất cả thông tin trên, bạn có thể sử dụng các chương trình
đã đề cập để gửi email