知识大全 用Javamail写的解析MimeMessage的程序
Posted 地址
篇首语:生活是活给自己看的,你有多大成色,世界才会给你多大脸色。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用Javamail写的解析MimeMessage的程序相关的知识,希望对你有一定的参考价值。
用Javamail写的解析MimeMessage的程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
package coffeecaebmail; import java io *; import java text *; import java util *; import javax mail *; import javax mail internet *; public class PraseMimeMessage private MimeMessage mimeMessage = null; private String saveAttachPath = ; //附件下载后的存放目录 private StringBuffer bodytext = new StringBuffer(); //存放邮件内容的StringBuffer对象 private String dateformat = yy MM dd HH:mm ; //默认的日前显示格式 /** * 构造函数 初始化一个MimeMessage对象 */ public PraseMimeMessage() public PraseMimeMessage(MimeMessage mimeMessage) this mimeMessage = mimeMessage; System out println( create a PraseMimeMessage object ); public void setMimeMessage(MimeMessage mimeMessage) this mimeMessage = mimeMessage; /** * 获得发件人的地址和姓名 */ public String getFrom()throws Exception InternetAddress address[] = (InternetAddress[])mimeMessage getFrom(); String from = address[ ] getAddress(); if(from == null) from= ; String personal = address[ ] getPersonal(); if(personal == null) personal= ; String fromaddr = personal+ < +from+ > ; return fromaddr; /** * 获得邮件的收件人 抄送 和密送的地址和姓名 根据所传递的参数的不同 * to 收件人 cc 抄送人地址 bcc 密送人地址 */ public String getMailAddress(String type)throws Exception String mailaddr = ; String addtype = type toUpperCase(); InternetAddress []address = null; if(addtype equals( TO ) || addtype equals( CC ) ||addtype equals( BCC )) if(addtype equals( TO )) address = (InternetAddress[])mimeMessage getRecipients(Message RecipientType TO); else if(addtype equals( CC )) address = (InternetAddress[])mimeMessage getRecipients(Message RecipientType CC); else address = (InternetAddress[])mimeMessage getRecipients(Message RecipientType BCC); if(address != null) for(int i= ;i<address length;i++) String email=address[i] getAddress(); if(email==null) email= ; else email=MimeUtility decodeText(email); String personal=address[i] getPersonal(); if(personal==null) personal= ; else personal=MimeUtility decodeText(personal); String positeto=personal+ < +email+ > ; mailaddr+= +positeto; mailaddr=mailaddr substring( ); else throw new Exception( Error emailaddr type! ); return mailaddr; /** * 获得邮件主题 */ public String getSubject()throws MessagingException String subject = ; try subject = MimeUtility decodeText(mimeMessage getSubject()); if(subject == null) subject= ; catch(Exception exce) return subject; /** * 获得邮件发送日期 */ public String getSentDate()throws Exception Date sentdate = mimeMessage getSentDate(); SimpleDateFormat format = new SimpleDateFormat(dateformat); return format format(sentdate); /** * 获得邮件正文内容 */ public String getBodyText() return bodytext toString(); /** * 解析邮件 把得到的邮件内容保存到一个StringBuffer对象中 解析邮件 * 主要是根据MimeType类型的不同执行不同的操作 一步一步的解析 */ public void getMailContent(Part part)throws Exception String contenttype = part getContentType(); int nameindex = contenttype indexOf( name ); boolean conname =false; if(nameindex != ) conname=true; System out println( CONTENTTYPE: +contenttype); if(part isMimeType( text/plain ) && !conname) bodytext append((String)part getContent()); else if(part isMimeType( text/ ) && !conname) bodytext append((String)part getContent()); else if(part isMimeType( multipart/* )) Multipart multipart = (Multipart)part getContent(); int counts = multipart getCount(); for(int i= ;i<counts;i++) getMailContent(multipart getBodyPart(i)); else if(part isMimeType( message/rfc )) getMailContent((Part)part getContent()); else /** * 判断此邮件是否需要回执 如果需要回执返回 true 否则返回 false */ public boolean getReplySign()throws MessagingException boolean replysign = false; String needreply[] = mimeMessage getHeader( Disposition Notification To ); if(needreply != null) replysign = true; return replysign; /** * 获得此邮件的Message ID */ public String getMessageId()throws MessagingException return mimeMessage getMessageID(); /** * 【判断此邮件是否已读 如果未读返回返回false 反之返回true】 */ public boolean isNew()throws MessagingException boolean isnew = false; Flags flags = ((Message)mimeMessage) getFlags(); Flags Flag []flag = flags getSystemFlags(); System out println( flags s length: +flag length); for(int i= ;i<flag length;i++) if(flag[i] == Flags Flag SEEN) isnew=true; System out println( seen Message ); break; return isnew; /** * 判断此邮件是否包含附件 */ public boolean isContainAttach(Part part)throws Exception boolean attachflag = false; String contentType = part getContentType(); if(part isMimeType( multipart/* )) Multipart mp = (Multipart)part getContent(); for(int i= ;i<mp getCount();i++) BodyPart mpart = mp getBodyPart(i); String disposition = mpart getDisposition(); if((disposition != null) &&((disposition equals(Part ATTACHMENT)) ||(disposition equals(Part INLINE)))) attachflag = true; else if(mpart isMimeType( multipart/* )) attachflag = isContainAttach((Part)mpart); else String contype = mpart getContentType(); if(conty cha138/Article/program/Java/JSP/201311/19435相关参考
复合邮件既含图片又含正文一般是格式显示简单理解的话就是非常漂亮的那种邮件 (个人注解不很全面) 当我们需要做一个收取邮件的程序时我们该如何去显示复合邮件的内容呢?(原问题见专家
知识大全 JavaMail常见问题之applet 中的 JavaMail
JavaMail常见问题之applet中的JavaMail 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
Javamail操作指南:实例代码解析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 怎样才算比
JavaMail发送附件的例子 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Herei
使用JavaMail实现邮件发送 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! im
JAVAMAIL邮件服务器 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 如果你认为没有必要设置
在JSP中使用JavaMail 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 什么是JavaMa
在JSP中使用JavaMail[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n
在JSP中使用JavaMail[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n
JavaMail常见问题之编程问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 问从哪里可以学