最近在做新系统,又遇到了发送邮件的问题,我们这个系统有一定的特殊性,可能需要发送邮件的地方比较多。于是想着怎么做的灵活一点,更能响应以后的需求变化,于是有了现在的这个实现。
总的来说,使用了spring的aop的触发机制,在不同的点来触发发送邮件这个业务,并根据这个点发送相应的邮件。而发送邮件这个模块也使用了spring包装过的javamail,不同的邮件则使用了velocity模板。呵呵,也算是现时比较流行的一个实现了!
下面是邮件子系统的简单结构图:
Email:
是一个邮件对象,就像我们平常看到的邮件一样,它包含了要发送的内容和一些属性,如:发送地址,邮件主题,发送 方,回复地址。
MailEngine:
邮件发送引擎。主要负责把我们生成的Email发送出去。它里面有一个JavaMailSender的实例,由spring提供。
VelocityEmailFactory:
邮件工厂,实现了EmailFactory接口。它将根据提供的velocity邮件模板和数据信息,生成一个待发送的Email实例。
MailBaseService:
抽象类,邮件服务的基础类,所有的邮件服务都将继承自它。它有一个VelocityEmailFactory实例,用于生成待发送的Email,还有一个MailEngine实例,用于发送Email。
MailByUserRegister
:具体的邮件服务,继承自MailBaseService。它将在用户注册时,为用户填写的邮件地址发送一封邮件。它有一个对应的velocity格式的邮件模板,和一些初始化参数,如该类邮件的主题,该类邮件的回复地址等。它的任务就是在用户进行注册操作并且成功时被触发(运用了aop机制),然后根据模板和用户注册时填写的一些信息,由父类提供的VelocityEmailFactory生成一封邮件,然后由父类的MailEngine发送出去.
MailByOrder:
系统中另一个具体的邮件服务,在有预定产生时,为预定者发送一封邮件.
这个就是邮件系统的结构设计,接下来会把相应的具体实现写下来,唉,最近太忙了,只能尽力了!
本文地址:http://kino.iteye.com/blog/210349
, 转载请注明,谢谢!
分享到:
相关推荐
例如,相关文献提及基于PLC的自动分拣系统、物料分拣控制系统设计,以及基于S7-200PLC控制的邮件自动分拣系统等,这些都为该系统的开发提供了参考和借鉴。 总而言之,该设计不仅为快递分拣作业的自动化提供了有力的...
- **邮件发送模块**:包含编辑邮件和发送邮件两个子功能,用户可以在编辑界面上填写邮件内容并附带附件,完成后提交发送。 - **邮件管理模块**:提供邮件的删除、移动等功能,帮助用户更好地组织和管理自己的邮件。 ...
以下将详细介绍该系统的设计理念、功能模块以及可能涉及到的关键技术。 1. **系统设计理念** - 人性化界面:网上知识竞赛系统需具备友好的用户界面,方便参赛者和管理员操作。 - 安全性:保护参赛者的个人信息和...
邮件过滤系统是信息技术领域中一个重要的子话题,特别是在网络安全和信息管理方面。它主要用于保护用户免受垃圾邮件、恶意软件和网络钓鱼等威胁。在这个毕业设计与论文的主题中,我们将深入探讨邮件过滤系统的原理、...
在描述中提到,该模块包含多个子模块,如留言模块、文件管理模块和用户管理模块。这些模块都是构建一个完整系统的基础,旨在提供全面的服务。留言模块可能用于用户之间的交流,文件管理模块帮助用户上传、下载和管理...
系统采用模块化设计,包括邮件发送模块、邮件接收模块、用户管理模块等。每个模块都有明确的功能定位,能够独立运行,同时也支持与其他模块的交互。这样的设计使得整个系统既具有高度的灵活性又便于维护和扩展。 ##...
触发器模块设计 - 使用Servlet处理用户请求,实现邮件发送、接收等操作。 ##### 6. 页面布局设计 - 采用JSP技术进行前端页面布局,提供良好的用户体验。 #### 五、项目编码与测试 - **编码实现**:根据设计文档...
而"VC++毕业设计-WinSock邮件系统设计与实现.zip"是主项目文件,包含了所有的源代码、编译文件、资源文件等,通过解压和编译这个文件,可以进一步了解和分析邮件系统的具体实现。 **详细知识点:** 1. **C++编程...
在电子技术领域,尤其是无线通信和信息技术中,无线终端和电子邮件提醒装置及方法是至关重要的组成部分,它们在日常生活中扮演着不可或缺的角色。本文件“电子功用-无线终端、电子邮件的提醒装置及方法”深入探讨了...
通过阅读《电子功用-掉电告警系统.pdf》,读者可以深入了解电力系统中掉电告警的重要性,掌握设计和实施此类系统的关键技术和实践,为保障电力设施的安全稳定运行提供理论支持和实际操作指导。对于从事电力工程、...
本源码包"王2003032105-杨晓冬-EIMS系统-OA子系统的设计与开发"提供了EIMS系统中OA子系统的完整设计和开发源代码,对于学习和研究企业级OA系统开发具有很高的参考价值。以下是基于该源码包可能涉及的一些核心知识点...
例如,会员系统可能包含多个子模块,如: - **帐号激活**:涉及新用户注册后的验证流程,可能通过邮件或短信发送验证码进行身份确认,确保账户安全。 - **密码找回**:涉及安全问题、邮箱验证或手机验证等多种...
电子邮件客户端系统设计是一种针对计算机科学与技术领域,旨在提供简洁、实用邮件管理的软件系统。在当前的电子邮件环境中,许多流行的邮件系统虽然包含了多种高级功能,但这些功能并不一定适用于所有用户,特别是...
10. 邮件队列:对于大量邮件发送的情况,可以设计一个邮件队列系统,将待发送的邮件先放入队列,然后后台异步处理,以避免阻塞用户界面。 以上就是电子邮件模块在JSP环境中的主要技术点,涵盖了前端交互、后端处理...
办公自动化系统的消息管理模块是指办公自动化系统中负责处理和管理办公信息的子系统。该模块的设计和实现是整个办公自动化系统的核心组件之一。办公自动化系统的出现是为了满足企业办公高效率和自动化的需求,办公...
主菜单界面使用`printf`和`switch-case`语句控制用户交互,子模块如添加、删除、查看和搜索邮件通过具体函数实现,确保了邮件管理的高效性和用户友好性。 综上所述,这个课程设计项目不仅提供了数据结构的实际应用...