来源:达内山东中心 网址:www.sdtarena.com
以前不知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的文件| |
| | |
| | |