?? testmail.jsp
字號:
<%@ page contentType="text/html;charset=GB2312"%>
<%
request.setCharacterEncoding("gb2312");
%>
<%@ page import="com.sinosoft.mail.UploadFileDataSource"%>
<%@ page import="java.util.*,javax.mail.*"%>
<%@ page import="javax.mail.internet.*"%>
<%@ page import="javax.activation.*"%>
<!--要發送附件必須引入該庫-->
<%@ page import="java.net.*"%>
<%@ page import="org.apache.commons.fileupload.*"%>
<!--要用到URL類-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>發送成功</title>
</head>
<body>
<%
try {
if (DiskFileUpload.isMultipartContent(request)) {
DiskFileUpload fileupload = new DiskFileUpload();
//設置允許用戶上傳文件大小,單位:字節
fileupload.setSizeMax(5*1024*1024);//5M
//設置最多允許在內存中存儲的數據,單位:字節
fileupload.setSizeThreshold(1024*1024);
//設置一旦文件大小超過getSizeThreshold()的值時數據存放在硬盤的目錄
//在進行文件上傳的時候文件先存再內存中,然后才會存到server上,
// 但是如果內存放不下那么大的文件
//就必須用硬盤上的 一個臨時文件夾來保存這個文件的部分,然后轉存
//現在默認的文件存儲的路徑是
String tempPath = System.getProperty("user.dir");
String temp = tempPath+System.getProperty("file.separator")+"temp";
fileupload.setRepositoryPath(temp);
fileupload.setHeaderEncoding("gb2312");
FileItem item = null;
Map map = new HashMap();
List fileList = new ArrayList();
try {
List inputList = fileupload.parseRequest(request);
for(Iterator i = inputList.iterator();i.hasNext();) {
item = (FileItem) i.next();
if (item.isFormField()) {
map.put(item.getFieldName(), item.getString());
} else {
if(!item.getName().equals("")){
fileList.add(item);
}
}
}
} catch (FileUploadBase.FileSizeLimitExceededException fse) {
out.println("附件不可超過5M");
} catch (FileUploadBase.UnknownSizeException use) {
out.println("附件大小不可知");
} catch (org.apache.commons.fileupload.FileUploadException fue) {
out.println("上傳錯誤");
} catch (Exception e) {
out.println(e.toString());
}
String tto = (String) map.get("to");
String tfrom = (String) map.get("from");
String tcc = (String) map.get("cc");
String tbcc = (String) map.get("bcc");
String ttitle = (String) map.get("title");
String emailtype = (String) map.get("emailtype");// 獲取email類型
String tcontent = (String) map.get("content");
String smtp = (String) map.get("smtp");
String username = (String) map.get("username");
String password = (String) map.get("password");
//System.out.println(smtp + "|" + username + "|" + password + "|"
// + tfrom);
Properties props = new Properties();// 也可用Properties props =
// System.getProperties();
props.put("mail.smtp.host", smtp);// 存儲發送郵件服務器的信息
props.put("mail.smtp.auth", "true");// 同時通過驗證
Session s = Session.getInstance(props);// 根據屬性新建一個郵件會話
s.setDebug(true);
MimeMessage message = new MimeMessage(s);
// 給消息對象設置發件人/收件人/主題/發信時間
InternetAddress from = new InternetAddress(tfrom);
message.setFrom(from);
message.setRecipients(Message.RecipientType.TO,
(Address[]) InternetAddress.parse(tto));
message.setRecipients(Message.RecipientType.CC,
(Address[]) InternetAddress.parse(tcc));
message.setRecipients(Message.RecipientType.BCC,
(Address[]) InternetAddress.parse(tbcc));
message.setSubject(ttitle);
message.setSentDate(new Date());
Multipart mm = new MimeMultipart();// 新建一個MimeMultipart對象用來存放多個BodyPart對象
// 設置信件文本內容
BodyPart mdp = new MimeBodyPart();// 新建一個存放信件內容的BodyPart對象
mdp.setContent(tcontent, emailtype + ";charset=gb2312");// 給BodyPart對象設置內容和格式/編碼方式
mm.addBodyPart(mdp);// 將含有信件內容的BodyPart加入到MimeMultipart對象中
// 設置信件的附件(用本地上的文件作為附件)
for (Iterator i = fileList.iterator(); i.hasNext();) {
item = (FileItem)i.next();
mdp = new MimeBodyPart();
String fname = item.getName();// 提取文件名
int ddd = fname.lastIndexOf("\\");
fname = fname.substring(ddd);
fname = new String(fname.getBytes("gb2312"), "ISO8859-1");// 處理文件名是中文的情況
mdp.setFileName(fname);// 可以和原文件名不一致,但最好一樣
DataSource datasource = new UploadFileDataSource(item);
mdp.setDataHandler(new DataHandler(datasource));
mm.addBodyPart(mdp);
}
message.setContent(mm);// 把mm作為消息對象的內容
message.saveChanges();
Transport transport = s.getTransport("smtp");
transport.connect(smtp, username, password);// 以smtp方式登錄郵箱
transport.sendMessage(message, message.getAllRecipients());
transport.close();
%>
<div align="center">
<p>
<font color="#FF6600">發送成功!</font>
</p>
<p>
<br>
<a href="index.html">再發一封</a>
</p>
</div>
<%
}else{
%>
<div align="center">
<p>
<font color="#FF6600">請將form的enctype設置為:"multipart/form-data"!</font>
</p>
</div>
<%
}
} catch (MessagingException e) {
out.println(e.toString());
}
%>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -