在JavaMail的基础上构建自己的Email Channel(2):封装Javamail的原因

封装Javamail的原因

两个字需求

1.      去年已经写过一个Message channel,抽象出了消息发送的统一接口,已经支持FTP, JMS。底层还提出来了一套统一的connection pool结构。用户通过依赖注入方式配置选择通信方式,connection pool的策略,具体实现在代码中对用户都是透明的,用户可以方便地通过配置文件切换选择的通信方式。Email通信方式也需要加到这套已有的设计上。

2.      直接使用javaMail,用户需要自己处理整个email的复杂结构,比如在接收时还需要处理正文和附件,并存储,使用完后还需要清理。

3.      用户可以提供邮件模板,从业务程序的上下文环境中提取有用的信息,替换模板中的placeholder,形成邮件内容。

4.      自动ACK,每收到一份邮件,就自动发送应答,应答也提供了模板定制功能,可以引用原邮件的标题,附件,正文等。

5.      邮件匹配和过滤,javamail提供了search功能,可以对邮件进行过滤,但是它不满足1中系统中已有的接口。

6.      对于匹配和过滤邮件,javamail已经设计了套语言的面向对象模型(SearchTerm, AndTerm, OrTerm, NotTerm…)。但是在实际应用中,我们不可能让用户直接使用这套面向对象机制,特别是前台用户,前台用户应该只需要提供一个表达式,描绘出接收的邮件必须满足的格式,然后后台把用户的表达式解释成javamail的面向对象模型。这就需要我们设计DSL和解释器。

7.      默认情况下用JavaMail收发中文邮件会出现乱码

8.      可对email socket connection 进行pool,提高性能

9.      在发送和接收时,Email Message需要序列化下来,并可反序列化。在发送时,偶尔也会衰地遇到SMTP服务器down掉的情况,这时email message需要能够备份下来,并能自动retry重发。


上文: 在JavaMail的基础上构建自己的Email Channel(1):基础知识

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值