📄 javamailattachment.jsp
字号:
<%@ page import="javax.mail.*" %>
<%@ page import="javax.mail.internet.*" %>
<%@ page import="javax.activation.*" %>
<%@ page import="java.util.*,java.io.*" %>
<%@ page import="com.oreilly.servlet.MultipartRequest" %>
<%@ page contentType="text/html;charset=GB2312" %>
<html>
<head>
<title>CH17 - JavaMail2.jsp</title>
</head>
<body>
<h2>利用JavaMail来传送电子邮件 - 附件</h2>
<%
InternetAddress[] address = null;
request.setCharacterEncoding("GBK");
MultipartRequest multi = new MultipartRequest(request , "." , 5*1024*1024 , "GBK");
String host = multi.getParameter("Host");
String user = multi.getParameter("User");
String password = multi.getParameter("Password");
String From = multi.getParameter("From");
String to = multi.getParameter("To");
String Subject = multi.getParameter("Subject");
String type = multi.getParameter("Type");
String messageText = multi.getParameter("Message");
String FileName = multi.getFilesystemName("FileName");
try {
// 设定所要用的Mail 服务器和所使用的传输协议
Properties props = new Properties();
props.put("mail.smtp.host", host); //指定SMTP服务器
props.put("mail.smtp.auth", "true"); //指定是否需要SMTP验证
// 产生新的Session 服务
Session mailSession = Session.getDefaultInstance(props);
Message msg = new MimeMessage(mailSession);
// 设定传送邮件的发信人
msg.setFrom(new InternetAddress(From));
// 设定传送邮件至收信人的信箱
address = InternetAddress.parse(to,false);
msg.setRecipients(Message.RecipientType.TO, address);
// 设定信中的主题
msg.setSubject(Subject);
// 设定送信的时间
msg.setSentDate(new Date());
if (FileName != null)
{
File file = new File(FileName);
// 如果有附件,先将邮件内容部分存起来
MimeBodyPart mbp1 = new MimeBodyPart();
// 设定邮件内容的类型为 text/plain 或 text/html
mbp1.setContent(messageText, type + ";charset=GB2312");
// 再来对附件作处理
MimeBodyPart mbp2 = new MimeBodyPart();
FileDataSource fds = new FileDataSource(FileName);
mbp2.setDataHandler(new DataHandler(fds));
mbp2.setFileName(MimeUtility.encodeText(fds.getName(), "GB2312", "B"));
// 最后再将两者整合起来,当作一份邮件送出
Multipart mp = new MimeMultipart();
mp.addBodyPart(mbp1);
mp.addBodyPart(mbp2);
msg.setContent(mp);
}
else
{
// 若没有附件时,就直接存邮件内容
msg.setContent(messageText,type + ";charset=GB2312");
}
Transport transport = mailSession.getTransport("smtp");
transport.connect(host, user, password);
transport.sendMessage(msg, msg.getAllRecipients());
transport.close();
out.println("邮件已顺利发送至:"+to);
}
catch (MessagingException mex)
{
mex.printStackTrace();
}
%>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -