现在的位置: 首页 > 综合 > 正文

一组实现邮件发送功能的c++封装类(附源码)

2014年02月28日 ⁄ 综合 ⁄ 共 1191字 ⁄ 字号 评论关闭

一组实现邮件发送功能的c++封装类

[名称]

SMailer (Simple Mail Sender)

[由来]

这个程序是笔者近日在实验邮件发送系统时写就的,原本只想实现功能了事,可也许是程序员的惯常品性所至,几经完善的结果就成了如今这个样子了。现在将整理之后的源代码一并奉上,大家可以根据需要加入到自己的系统中去。

[功能]

- 支持验证功能,为可选项

- 支持包括html文本、普通文本在内的混排方式

- 支持按特定优先级发送邮件

- 支持一次发送多个附件,为可选项

- 支持多收件人发送,对于某封邮件,可以选择一次只向一个人发送,也可以选择发送给所有人

[说明]

- 全部源代码可以在这里下载到:http://morningspace.51.net/resource/SMailer.php,同时还有一篇更为详细的介绍性文章

- 程序TestSMailer.cpp演示了如何使用SMailer的功能,这是一个命令行形式的应用程序

- 时间的原因,我没有编写GUI,不过由于所有功能均已封装,要将SMailer加入GUI系统中应该是易如反掌的

- 程序在MSVC6编译器下运行通过,并在Cygwin-b20下编译通过(头文件要做一点小小的改动),由于代码中采用了S(T)L及BSD风格的socket,所以在其余平台上的移植应该也不会很麻烦

- 若使用MSVC6命令行编译器,如下编译命令可供参考:

cl -GX TestSMailer.cpp SMailer.cpp ../MUtils/Base64Helper.cpp ws2_32.lib

[组成]

程序中的几乎所有类都位于SMailer名字空间之下,以下是诸类的简要说明,更为详细的说明请参考《一组实现邮件发送功能的c++封装类 — SMailer》一文:

- MimeContent:抽象类,代表邮件正文部分和附件

- PlainTextContent:派生自MimeContent,代表普通文本的正文

- TextHtmlContent:派生自MimeContent,代表html格式的正文

- AppOctStrmContent:派生自MimeContent,代表文件形式的附件

- Priority:工具类,定义了三种级别的邮件优先级

- MailInfo:封装了一封邮件的所有信息

- MailWrapper:内含了MailInfo,用来对MailInfo的信息进行加工再处理

- MailSender:邮件发送类

- ErrorMessage:工具类,用于为给定操作的失败提供统一的错误描述信息,是一个单件

- MailException:工具类,程序中出错时会抛出该异常

此外还有如下几个工具类,它们位于MUtils名字空间之下:

- FileHelper:提供文件I/O功能

- WinSockHelper:提供针对WinSock编程所必要的支持功能

- Base64Helper:提供Base64的编码/解码功能

-- Morning --

抱歉!评论已关闭.