public class SendAttachment extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 設定是163郵箱的地址
String host="smtp.163.com";
// 設定郵箱賬戶名稱
String accountName="NutsISA";
// 設定郵箱賬戶密碼
String password="******";
// 上傳的附件
File uploadedFile=null;
// 發件個地址
String from="";
// 收件者地址
String to="";
// 郵件主題
String subject="";
// 郵件內容
String content="";
// 把附件內容上傳到伺服器
//判斷出提交過來的表單是否為檔案上傳表單,如果不是檔案上傳表單,在後續的處理中就不再用檔案上傳功能來處理這個表單
boolean isMultipart=ServletFileUpload.isMultipartContent(request);
if(isMultipart){
FileItemFactory factory=new DiskFileItemFactory();
ServletFileUpload upload=new ServletFileUpload(factory);//構造一個檔案上傳處理對象
Iterator items;
try{
items=upload.parseRequest(request).iterator();//解析出表單中提交的所有檔案內容
while(items.hasNext()){
FileItem item=(FileItem)items.next();
if(!item.isFormField()){
// 取出上傳檔案的名稱
String name=item.getName();
String fileName=name.substring(name.lastIndexOf('\\')+1,name.length());
//上傳到伺服器以後儲存的路徑(上傳的檔案將被儲存到當前應用項目的fileName字串表示的檔案夾中)
String path=request.getRealPath(fileName);
// 上傳檔案
uploadedFile=new File(path);
item.write(uploadedFile);
}else if(item.isFormField()){
// 下面取出表單中各個輸入欄位的值
if(item.getFieldName().equals("from")){
from=item.getString();
}else if(item.getFieldName().equals("to")){
to=item.getString();
}else if(item.getFieldName().equals("subject")){
subject=item.getString();
}else if(item.getFieldName().equals("content")){
content=item.getString();
}
}
}
}catch(Exception e){
e.printStackTrace();
}
}
// 設定郵件資訊
AttachmentSender sender=new AttachmentSender(host,accountName,password);
sender.setFrom(from);//設定寄件者
sender.setTo(to);//設定收件者
sender.setSubject(subject);//設定主題
sender.setContent(content);//設定本文
if(uploadedFile != null){
String attachement=request.getRealPath(uploadedFile.getName());
sender.addAttachment(attachement);
}
// 列印發送郵件結果
response.setContentType("text/html");
response.setCharacterEncoding("gb2312");
PrintWriter out=response.getWriter();
if(sender.send()){
out.print("<font size='1'>郵件發送成功!</font><br>");
}else{
out.print("<font size='1'>郵件發送失敗!</font><br>");
}
// 發送郵件以後,刪除上傳檔案
if(uploadedFile.exists())
uploadedFile.delete();
}
}