没有合适的资源?快使用搜索试试~ 我知道了~
组实现邮件发送功能的c++封装类 — SMailer
4星 · 超过85%的资源 需积分: 10 39 下载量 52 浏览量
2010-06-07
14:11:02
上传
评论
收藏 84KB DOC 举报
温馨提示
试读
7页
实验邮件发送系统时写的,原本只想实现功能了事,可也许是程序员的惯常品性所至,几经完善的结果就成了如今这个样子了。网上也有不少有关于此的源码,但这些程序多半是不完整的,或者属于示例性程序,无法直接拿来使用。一些网络编程的书也有类似介绍,但又过于复杂了。
资源推荐
资源详情
资源评论
一组实现邮件发送功能的 c++封装类 — SMailer
这个程序是笔者近日在实验邮件发送系统时写的,原本只想实现功能了事,可也许是程序员的
惯常品性所至,几经完善的结果就成了如今这个样子了。网上也有不少有关于此的源码,但这
些程序多半是不完整的,或者属于示例性程序,无法直接拿来使用。一些网络编程的书也有类
似介绍,但又过于复杂了。笔者所写的这个程序以上述资源作为参考,并保有自身特点:功能
齐全,小巧简洁,取名 SMailer 也正是出于此意(Simple Mail Sender)。大家可以根据需
要加入到自己的系统中去。
程序包括如下功能:
支持验证功能,为可选项
支持包括 html 文本、普通文本在内的混排方式
支持按特定优先级发送邮件
支持一次发送多个附件,为可选项
支持多收件人发送,对于某封邮件,可以选择一次只向一个人发送,也可以选择发送
给所有人
SMailer 的另一个特点是,采用标准 c++写就,并具有良好的程序结构,麻雀虽小五脏俱全,
诸类各司其职,共同构成了一个完整的小系统。SMailer 中多数类都被定义于 SMailer 名字空
间下,以下是程序关键部分的简要讲解:
MimeContent 及其子类
针对邮件的正文部分和附件部分,SMailer 定义了一个抽象类 MimeContent,并声明了几个
必要的成员函数:
class MimeContent
{
public:
MimeContent(const std::string content = "");
virtual std::string getType() const = 0;
virtual std::string getDisposition() const;
virtual std::string getTransEncoding() const = 0;
virtual std::string& getContent() = 0;
protected:
std::string _content;
};
随 后 , SMailer 又 从 MimeContent 派 生 了 三 个 子 类 :
PlainTextContent、TextHtmlContent、AppOctStrmContent,分别代表普通文本的正文、
html 格式的正文和文件形式的附件。值得注意的是,AppOctStrmContent 中记录的是附件
所在的路径,只有当调用了 getContent 函数时,才会根据路径读取文件内容,随后进行
Base64 编码,这里会用到 FileHelper 和 Base64Helper 两个辅助类,后面会讲到:
std::string& AppOctStrmContent::getContent()
{
// you can add more codes here, such as wrapping lines
资源评论
- xiaowanzhu12302015-07-27思路很好 就是我的电脑死活不支持smtp 能告知为啥不行就更好了
- waterqiu2019-11-08很有参考价值,谢谢分享
- 邻家小宝2022-04-0810分有点高了
- pengJL982016-06-10很有参考价值,谢谢分享
wryi158
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功