资源简介
用C++编写的发送邮件的程序,很好用,可以包含邮件正文内容,还可以包含附件,功能强大。

代码片段和文件信息
/*
base64.cpp and base64.h
Copyright (C) 2004-2008 Ren?Nyffenegger
This source code is provided ‘as-is‘ without any express or implied
warranty. In no event will the author be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose
including commercial applications and to alter it and redistribute it
freely subject to the following restrictions:
1. The origin of this source code must not be misrepresented; you must not
claim that you wrote the original source code. If you use this source code
in a product an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such and must not be
misrepresented as being the original source code.
3. This notice may not be removed or altered from any source distribution.
Ren?Nyffenegger rene.nyffenegger@adp-gmbh.ch
*/
#include “base64.h“
#include
static const std::string base64_chars =
“ABCDEFGHIJKLMNOPQRSTUVWXYZ“
“abcdefghijklmnopqrstuvwxyz“
“0123456789+/“;
static inline bool is_base64(unsigned char c)
{
return (isalnum(c) || (c == ‘+‘) || (c == ‘/‘));
}
std::string base64_encode(unsigned char const* bytes_to_encode unsigned int in_len)
{
std::string ret;
int i = 0 j = 0;
unsigned char char_array_3[3] char_array_4[4];
while (in_len--)
{
char_array_3[i++] = *(bytes_to_encode++);
if (i == 3)
{
char_array_4[0] = (char_array_3[0] & 0xfc) >> 2;
char_array_4[1] = ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4);
char_array_4[2] = ((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6);
char_array_4[3] = char_array_3[2] & 0x3f;
for(i = 0; (i <4) ; i++)
ret += base64_chars[char_array_4[i]];
i = 0;
}
}
if (i)
{
for(j = i; j < 3; j++)
char_array_3[j] = ‘\0‘;
char_array_4[0] = (char_array_3[0] & 0xfc) >> 2;
char_array_4[1] = ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4);
char_array_4[2] = ((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6);
char_array_4[3] = char_array_3[2] & 0x3f;
for (j = 0; (j < i + 1); j++)
ret += base64_chars[char_array_4[j]];
while((i++ < 3))
ret += ‘=‘;
}
return ret;
}
std::string base64_decode(std::string const& encoded_string)
{
int in_len = encoded_string.size();
int i = 0 j = 0 in_ = 0;
unsigned char char_array_4[4] char_array_3[3];
std::string ret;
while (in_len-- && ( encoded_string[in_] != ‘=‘) && is_base64(encoded_string[in_]))
{
char_array_4[i++] = encoded_string[in_]; in_++;
if (i ==4) {
for (i = 0; i <4; i++)
char_array_4[i] = base64_chars.find(char_array_4[i]);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3842 2016-05-21 15:04 CSmtp_v1_4\ba
文件 190 2008-07-18 20:30 CSmtp_v1_4\ba
文件 25068 2016-05-22 20:55 CSmtp_v1_4\CSmtp.cpp
文件 4511 2008-08-22 02:39 CSmtp_v1_4\CSmtp.dsp
文件 535 2008-08-20 14:05 CSmtp_v1_4\CSmtp.dsw
文件 3769 2009-03-05 15:04 CSmtp_v1_4\CSmtp.h
文件 41984 2009-03-05 15:11 CSmtp_v1_4\CSmtp.ncb
文件 48640 2009-03-05 15:11 CSmtp_v1_4\CSmtp.opt
文件 2274 2009-03-05 15:11 CSmtp_v1_4\CSmtp.plg
文件 7680 2016-09-03 21:59 CSmtp_v1_4\CSmtp.v12.suo
文件 6437 2016-05-21 14:55 CSmtp_v1_4\CSmtp.vcxproj
文件 1297 2016-05-21 14:53 CSmtp_v1_4\CSmtp.vcxproj.filters
文件 164481 2016-09-03 21:59 CSmtp_v1_4\Debug\ba
文件 1072 2016-05-22 20:55 CSmtp_v1_4\Debug\CSmtp.Build.CppClean.log
文件 704000 2016-09-03 21:59 CSmtp_v1_4\Debug\CSmtp.exe
文件 1722512 2016-09-03 21:59 CSmtp_v1_4\Debug\CSmtp.ilk
文件 37214 2016-09-03 21:59 CSmtp_v1_4\Debug\CSmtp.log
文件 507945 2016-09-03 21:59 CSmtp_v1_4\Debug\CSmtp.obj
文件 3525632 2016-09-03 21:59 CSmtp_v1_4\Debug\CSmtp.pdb
文件 7886 2016-09-03 21:59 CSmtp_v1_4\Debug\CSmtp.tlog\cl.command.1.tlog
文件 139014 2016-09-03 21:59 CSmtp_v1_4\Debug\CSmtp.tlog\CL.read.1.tlog
文件 3672 2016-09-03 21:59 CSmtp_v1_4\Debug\CSmtp.tlog\CL.write.1.tlog
文件 169 2016-09-03 21:59 CSmtp_v1_4\Debug\CSmtp.tlog\CSmtp.lastbuildstate
文件 6220 2016-09-03 21:59 CSmtp_v1_4\Debug\CSmtp.tlog\li
文件 8238 2016-09-03 21:59 CSmtp_v1_4\Debug\CSmtp.tlog\li
文件 2192 2016-09-03 21:59 CSmtp_v1_4\Debug\CSmtp.tlog\li
文件 175073 2016-09-03 21:59 CSmtp_v1_4\Debug\main.obj
文件 1805312 2016-09-03 21:59 CSmtp_v1_4\Debug\vc120.idb
文件 495616 2016-09-03 21:59 CSmtp_v1_4\Debug\vc120.pdb
文件 1150 2016-09-03 21:59 CSmtp_v1_4\main.cpp
............此处省略8个文件信息
- 上一篇:leetcode算法题答案PDF
- 下一篇:C++课程设计贪吃蛇源码+课设报告
相关资源
- 国际象棋的qt源代码
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- c++ 多功能计算器
- C++17 In Detail
- 嵌入式QtC++编程课件
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- c++ 画图(14Qt-XPS)
- c++多边形交并差运算
评论
共有 条评论