Tóm Tắt
JSP Tutorial – JSP Send Email
To send an email using a JSP, install JavaMail API and Java Activation Framework (JAF)
in CLASSPATH.
Send an Email
<%@ 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 = ; String from = ; String host ="localhost"
; Properties properties = System.getProperties(); properties.setProperty("mail.smtp.host"
, host); Session mailSession = Session.getDefaultInstance(properties);try
{ MimeMessage message =new
MimeMessage(mailSession); message.setFrom(new
InternetAddress(from)); message.addRecipient(Message.RecipientType.TO,new
InternetAddress(to)); 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> <body> <center> </center> <p align="center"
> <% out.println("Result: "
+ result +"\n"
); %> </p> </body> </html>
To send an email to multiple recipients, use the following method.
void addRecipients(Message.RecipientType type, Address[] addresses) throws MessagingException
Send an HTML Email
Use the following function and parameter to send an HTML email out.
message.setContent("<h1>This is actual message</h1>"
,"text/html"
);
Full source code
<%@ 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 = ; String from = ; String host ="localhost"
; Properties properties = System.getProperties(); properties.setProperty("mail.smtp.host"
, host); Session mailSession = Session.getDefaultInstance(properties);try
{ MimeMessage message =new
MimeMessage(mailSession); message.setFrom(new
InternetAddress(from)); message.addRecipient(Message.RecipientType.TO,new
InternetAddress(to)); message.setSubject("This is the Subject Line!"
); 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> <body> <p align="center"
> <% out.println("Result: "
+ result +"\n"
); %> </p> </body> </html>
Send Email with Attachment
<%@ 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 = ; String from = ; String host ="localhost"
; Properties properties = System.getProperties(); properties.setProperty("mail.smtp.host"
, host); Session mailSession = Session.getDefaultInstance(properties);try
{ MimeMessage message =new
MimeMessage(mailSession); message.setFrom(new
InternetAddress(from)); message.addRecipient(Message.RecipientType.TO,new
InternetAddress(to)); 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> <body> <% out.println("Result: "
+ result +"\n"
); %> </body> </html>
User Authentication
To provide user ID and Password to the email server, set the user name and password in
properties as follows:
props.setProperty("mail.user"
,"myuser"
); props.setProperty("mail.password"
,"mypwd"
);