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();
}
}