[TOC]
//isFormField方法用于判断FileItem类对象封装的数据是一个普通文本表单
//还是一个文件表单,如果是普通表单字段则返回true,否则返回false
boolean isFormField();
//getFieldName方法用于返回表单标签name属性的值。
String getFieldName();//获取这个input的name属性值
//getString方法用于将FileItem对象中保存的数据流内容以一个字符串返回
String getString();//用字符串存储文件的数据流
//getName方法用于获得文件上传字段中的文件名
String getName();
//以流的形式返回上传文件的数据内容。
InputStream getInputStream()
//delete方法用来清空FileItem类对象中存放的主体内容
//如果主体内容被保存在临时文件中,delete方法将删除该临时文件。
void delete();
ServletFileUpload负责处理上传的文件数据,并将表单中每个输入项封装成一个FileItem对象中 . 使用其parseRequest(HttpServletRequest) 方法可以将通过表单中每一个HTML标签提交的数据封装成一个FileItem对象,然后以List列表的形式返回,使用该方法处理上传文件简单易用
import com.sun.mail.util.MailSSLSocketFactory;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import java.util.Properties;
public class MailDemo02 {
public static void main(String[] args) throws Exception {
Properties prop=new Properties();
prop.setProperty("mail.host","smtp.qq.com");// 设置QQ邮件服务器
prop.setProperty("mail.transport.protocol","smtp");// 邮件发送协议
prop.setProperty("mail.smtp.auth","true");// 需要验证用户密码
// QQ邮箱需要设置SSL加密
MailSSLSocketFactory sf=new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
prop.put("mail.smtp.ssl.enable","true");
prop.put("mail.smtp.ssl.socketFactory",sf);
// 使用javaMail发送邮件的5个步骤
// 1.创建定义整个应用程序所需要的环境信息的session对象
Session session=Session.getDefaultInstance(prop, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("11927XXX@qq.com","授权码");
}
});
// 开启session的debug模式,这样可以查看到程序发送Email的运行状态
session.setDebug(true);
// 2.通过session得到transport对象
Transport ts=session.getTransport();
// 3.使用邮箱的用户名和授权码连上邮件服务器
ts.connect("smtp.qq.com","11927XXX@qq.com","授权码");
// 4.创建邮件:写文件
// 注意需要传递session
MimeMessage message=new MimeMessage(session);
// 指明邮件的发件人
message.setFrom(new InternetAddress("11927XXX@qq.com"));
// 指明邮件的收件人
message.setRecipient(Message.RecipientType.TO,new InternetAddress("11927XXX@qq.com"));
// 邮件标题
message.setSubject("java发出");
// 邮件的文本内容
// =================================准备图片数据=======================================
MimeBodyPart image=new MimeBodyPart();
// 图片需要经过数据化的处理
DataHandler dh=new DataHandler(new FileDataSource("src/resources/1.jpg"));
// 在part中放入这个处理过图片的数据
image.setDataHandler(dh);
// 给这个part设置一个ID名字,sr
image.setContentID("1.jpg");
// 准备正文的数据
MimeBodyPart text=new MimeBodyPart();
text.setContent("这是一张正文<img src='cid:1.jpg'>","text/html;charset=UTF-8");
// 描述数据关系
MimeMultipart mm=new MimeMultipart();
mm.addBodyPart(text);
mm.addBodyPart(image);
mm.setSubType("related");
// 设置到消息中,保存修改
message.setContent(mm);
message.saveChanges();
// 5.发送邮件
ts.sendMessage(message,message.getAllRecipients());
// 6.关闭连接
ts.close();
}
}