封装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):基础知识
分享到:
相关推荐
通过运行和分析这个示例,你可以快速掌握如何在自己的项目中集成和使用这个封装。 总结来说,封装javamail是为了简化邮件处理,通过创建自定义的邮件服务类,使得开发者能更便捷地发送和接收邮件。项目提供的`doc`...
2. **SMTP协议**: SMTP(Simple Mail Transfer Protocol)是用于在互联网上传输邮件的协议。在JavaMail中,我们通常使用SMTP服务器来发送邮件,通过`Transport.send(Message)`方法完成。 3. **邮件配置**: 自定义...
JavaMail和Apache Commons Email是两个在Java环境中广泛使用的库,用于发送电子邮件。这两个库提供了丰富的功能,使得开发者能够轻松地实现复杂邮件的发送,包括文本邮件、HTML邮件、附件、多部分消息等。 JavaMail...
JavaMail 是一个开源库,用于在Java应用程序中处理电子邮件。这个库提供了丰富的API,使得开发者可以方便地执行发送、接收、读取和管理邮件的任务。`javamail-1.6`是JavaMail的一个版本,它包含了从早期版本中继承的...
在实际开发中,开发者通常会结合JavaMail API与Servlet、Spring框架等一起使用,构建Web应用中的邮件服务功能。例如,用户注册时发送验证邮件,系统异常时自动发送报警邮件,或者提供用户邮件收发的界面等。 总的来...
总之,`nmw-email-taglib`是一个强大的工具,它将JavaMail API的复杂性封装在易于使用的JSP标签中,使得Web开发者能够更专注于业务逻辑,而不是底层邮件发送的细节。通过理解和熟练运用这个标签库,可以极大地提升...
书名:JavaMail API基础教程(电子书) 格式:HTML 作者:IBM 目录 1.教程提示 2.引入JavaMail API 3.对相关协议的回顾 4.安装JavaMail 5.对核心类的概览 6.JavaMail API的使用 7.用SearchTerm(搜索条件)搜索 8.练习...
### James+Javamail构建邮件服务 #### 关于James与Javamail - **Apache James**:作为Apache组织的子项目之一,James(Java Apache Mail Enterprise Server)是一款完全基于Java开发的邮件服务器解决方案。它支持...
JavaMail 是一个强大的开源库,用于在Java应用程序中实现电子邮件的发送和接收功能。它提供了丰富的API,使得开发者能够方便地处理SMTP、POP3、IMAP等邮件协议,支持多种邮件格式,包括文本、HTML以及带有附件的邮件...
在开始使用JavaMail之前,需要在项目中引入JavaMail的依赖库,这通常通过Maven或Gradle等构建工具来完成。同时,需要配置邮件服务器的相关信息,包括SMTP服务器地址、端口号、用户名和密码等,这些可以通过`...
在发送带有附件的邮件时,Apache Commons Email的`MultiPartEmail`类就派上用场了。你可以添加多个文件作为附件,无论是文本、图片、PDF还是其他类型的文件,都可以轻松处理。此外,该库还支持发送带有内嵌图片的...
在这个场景中,我们关注的是两个关键的JavaMail依赖jar包:`activation.jar`和`commons-email-1.1.jar`。 `activation.jar`是JavaBeans Activation Framework (JAF) 的一部分,它主要用于处理MIME类型的对象,特别...
SMTP是互联网上传输电子邮件的标准协议,JavaMail API封装了与SMTP服务器交互的细节。 2. **POP3(Post Office Protocol v3)和IMAP(Internet Message Access Protocol)支持**:除了发送邮件,JavaMail 还能处理...
它提供了`Session`、`Message`、`Address`、`Store`和`Transport`等关键类,是构建邮件应用的基础。 使用这两个jar包时,开发者需要将它们添加到项目类路径中,然后可以开始编写邮件处理代码。以下是一个简单的示例...
JavaMail 是一个强大的开源库,专门用于在Java应用程序中处理电子邮件。这个完整JAR包包含了所有必要的组件,使得开发者能够方便地实现发送、接收、读取以及管理电子邮件。以下是JavaMail的一些关键知识点: 1. **...
JavaMail API是Java平台上用于处理电子邮件的一套标准API,它为开发者提供了丰富的接口和类,以便于发送、接收和管理电子邮件。JavaMail API是Java EE的一部分,但也可以在Java SE环境中使用。`javaMail.jar`是...
JavaMail是一种广泛使用的Java库,它允许开发人员在Java应用程序中发送和接收电子邮件。这个教程主要关注的是如何使用JavaMail发送简单的HTML邮件,这在现代应用程序中非常常见,因为HTML邮件可以提供更丰富的格式和...