JavaMail技术实现邮件转发
- jar包下载 https://pan.baidu.com/s/1kEwTSRPbLHhVvrqwjoVeKw
- 提取码 4bht
- 在对应的java项目中导入架包
JavaMail中使用的类及对应方法
一、Session对象
Session(邮件会话)
Session 对象利用Properties对象获得了邮件服务器,用户名,密码,信息,和整个应用程序都要用到的共享
●创建配置文件
properties prop = new Properties();
●通过配置文件获取当前会话级别的session对象
Session session = Session.getInstance(prop,null);
或者获取当前的默认的配置文件下的session对象 //第二个参数代表当前的授权对象
Session session = Session.getDefaultInstancce(prop,null);
●设置对应的配置文件的相关属性
prop.setProperty();
// 定义服务器地址(发送时使用本机地址)
prop.setProperty("mail.host", "localhost");
// 定义服务器协议
prop.setProperty("mail.transport.protocol", "smtp");
// 定义用户权限,是否需要认证
prop.setProperty("mail.smtp.auth", "true");
●开启session的debug模式
session.setDebug(true); //可以在后台看出发送的主机名,发送的地址,接收的地址,以及发送的端口号
二、Message对象
建立Session对象后,就可以构造发送的Message抽象类(邮件对象),建议使用MimeMessage子类对象
该类使用的是MIME类型,MIME信息头的邮箱信息
Message类的三种构造方式:
Message( );
Message(Folder folder , int messageNumbers) ; 文件夹
Message(Session) ;
消息的发送方一般存在于FROM:首部中,而消息的接收方却分为TO,CC , BCC三个字段
Message.RecipientType.TO 接收
Message.RecipientType.CC 抄送
Message.RecipientType.BCC 密送
消息主题:
// 邮件标题
message.setSubject(String subject);
// 获取对应邮件的主题
String getSubject( )
消息日期:
// 设置消息发送的日期
void setSentDate(Date date) ;
// 获取发送的时间
Date getSentDate( );
// 获取消息接收的时间
Date getReceivedDate( ) ;
消息内容格式:
message.setContent(文本,文本格式 ) ;
三、Multipart 和 BodyPart 和 MimeBodyPart
Message表示一个邮件,message.getContent( ) 返回的是一个Multipart对象,一个Mutipart对象包含一个或多个BodyPart对象
来组成邮件的正文部分(包括附件)
Multipart: (抽象类)
Multipart是一个容器它转载多个bodyPart(正文,附件或内嵌资源)。Part的getContent( ) 方法,就返回一个Multipart对象
MimeMultipart是Multipart的实现类,默认类别是mixed,其他类型为related,alternative
● multipart有三种类型:
multipart/mixed:附件
multipart/related: 内嵌资源 (在对应的HTML文件中嵌入了对应的图片)
multipart/alternative:纯文本和超链接 (包含内嵌图片和复杂附件)
BodyPart: (文本内容)
BodyPart是一个邮件头对象(是一个抽象类)
//创建BodyPart的实例
●BodyPart bodypart = new MimeBodyPart( ) ;
//添加文本内容
void addBodyPart(BodyPart part) ;
//添加具体索引对应的bodypart
void addBodyPart(BodyPart part , int index)
//根据索引,获取BodyPart
BodyPart getBodyPart(int index );
//移除的对应的BodyPart
boolean removeBodyPart(BodyPart part);
//获取BodyPart数量