一、 发邮件1) 获取Sessioni) 实行一个Authentication类的子类,实行里面的public PasswordAuthentication getPasswordAuthentication()方法ii) New一个上面类的实例,设置用户名和密码iii) New一个Properties对象,设置mail.smtp.host and mail.smtp.auth属性iv) 同过Session的静态方法,获取一个Session实例2) 生成Messagei) 没有附件的邮件第一步: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,bccAddressii) Transport发送邮件二、 收邮件1)new Properties实例,设置mail.pop3.host 的值2)获取Session实例3)根据Session,获取Store实例4)连接store5)获取Index文件夹6)打开文件夹7)获取文件夹里面所有Message8)用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中获取Multipart11)遍历Multipart中的BodyPart12)判断bodyPart的Disposition是否是Part.ATTACHMENT13)如果不是,直接获取bodyPart里面的content14)否则获取bodyPart的文件名和文件流(inputstream),将流写入本地文件,实现附件的下载
java接收邮件先后顺序_JavaMail收发邮件的步骤
最新推荐文章于 2021-04-30 11:39:17 发布