利用JavaMail API 解析MIME
以前不知MIME为何物,经过一段时间研究,大体理解为邮件接受以及发送的一种标准格式。
只有理解这个标准,才能把邮件服务器接收的邮件的内容解析,以及把新邮件生成MIME的标准格式发送出去,让其他邮件服务器正确解析出来。
所以可以封装成一个mailadaptor.jar.
1# MailAdaptor 简介 MailAdaptor 是一个负责邮件存取,邮件解析,邮件生成MIME的适配器。 2# MailAdaptor 核心函数 MailAdaptor主要包括: MailInfo loadMailInfo(MailSetting mailSetting, Long companyId, String emlFilePath); Boolean saveMailInfo(Long companyId, String fileServiceDir,MailInfo mailInfo); 2.1# loadMailInfo主要是负责从FileService上取MIME文件的数据,之后解析出来,由特定的MailDisplay控件显示。 mailSetting 参数是设置解析邮件时附件的临时存放目录,临时内嵌图片附件的展示地址,临时普通附件的下载地址, 新增内嵌附件的上传Url. MailSetting 属性如下: ------------------------------------------------------------------------------------
private String attachmentShowUrl = ""; private String attachmentDownloadUrl = ""; private String ckEditorUploadFileUrl = ""; private String attachmentTempDir = "";
------------------------------------------------------------------------------------ companyId参数是当前用户的公司ID,emlFilePath参数是MIME文件在FileService上的相对路径,这两参数组合用去定位到MIME文件在FileService上的绝对路径。 2.2# saveMailInfo 主要是负责生成MIME文件,之后存放到FileService上。 MailInfo 参数是收集了邮件信息的自定义实体,是MailWrite控件的输出。 MailInfo属性如下: ------------------------------------------------------------------------------------
private String from = ""; private String to = ""; private Date sendDate = new Date(); private String subject = ""; private String content = ""; private List<Attachment> attachmentList = new ArrayList<Attachment>(); private MailType mailType;
------------------------------------------------------------------------------------ companyId参数是当前用户的公司ID,fileServiceDir参数是指定MIME文件在FileService上的存放目录,这 两参数组合用去 指定MIME文件在FileService上的存放路径。 3# MailAdaptor的整体流程 MailAdaptor大体分为取MIME解析成邮件,邮件生成MIME的两部分。 -------------------------------------------------------------------------------------- GWT | MailAdaptor | FileService | | 取MIME文件| | | <--------------------- | | | | MailDisplay <----------- | | |解析MIME | | | | | | | | | | | | MailInfo | | MailWrite ----------------> | | | | | | | | | ---------------------------> | | 存生成MIME的文件| | | | | | | |