首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

JavaMail收发邮件的方法

2012-09-10 
JavaMail收发邮件的步骤一、? 发邮件1) 获取Sessioni) 实行一个Authentication类的子类,实行里面的public P

JavaMail收发邮件的步骤

一、? 发邮件

1) 获取Session

i) 实行一个Authentication类的子类,实行里面的public PasswordAuthentication getPasswordAuthentication()方法

ii) New一个上面类的实例,设置用户名和密码

iii) New一个Properties对象,设置mail.smtp.host? and mail.smtp.auth属性

iv) 同过Session的静态方法,获取一个Session实例

2) 生成Message

i) 没有附件的邮件

?? 第一步:new一个MimeMessage实例(根据Session)

?? 第二步:给Message实例设置subject、text属性

ii) 有附件的邮件

?? 第一步:根据Session new一个MimeMessage实例(Message)

?? 第二步:设置Message subject属性

?? 第三步:new一个MimeBodyPart实例 和 Mulipart(MimeMulipart)实例

?? 第四步:给MimeBodyPart实例设置邮件文本内容

?? 第五步:将MimeBodyPart实例,添加到Mulipart实例

?? 第六步:根据附件数循环:

?????????? New MimeBodyPart实例

?????????? 获取FileDatasource

?????????? 将FileDatasource设置到MimeBodyPart

?????????? 设置MimeBodyPart的文件名

?????????? 将MimeBodyPart添加到 Mulipart

?? 第七步:将Mulipart设置成MimeMessage的内容

3) 发送邮件

i) 设置Message的fromAddress,toAddress,ccAddress,bccAddress

ii) Transport发送邮件????

?


二、? 收邮件

1)new Properties实例,设置mail.pop3.host 的值

2)获取Session实例

3)根据Session,获取Store实例

4)连接store

5)获取Index文件夹

6)打开文件夹

7)获取文件夹里面所有Message

8)用FetchProfile优化Message的查找

??? FetchProfile profile = new FetchProfile();

??? profile.add(FetchProfile.Item.ENVELOPE);

??? profile.add(FetchProfile.Item.FLAGS);

??? profile.add("X-Mailer");

??? inbox.fetch(msg, profile);

9)判断Message的MimeType类型如果是text/*类型,直接可以从Message从获取邮件from 地址、标题和内容,否则执行下面的步骤

10)从Message中获取Multipart

11)遍历Multipart中的BodyPart

12)判断bodyPart的Disposition是否是Part.ATTACHMENT

13)如果不是,直接获取bodyPart里面的content

14)否则获取bodyPart的文件名和文件流(inputstream),将流写入本地文件,实现附件的下载

热点排行