一组实现邮件发送功能的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 --