资源简介
C++邮箱实现直接可用(@qq,@163)类函数丰富,使用openssl,vs2013测试通过,不同邮箱需更改服务器。
代码片段和文件信息
/*
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]);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 17536 2013-08-17 11:22 CSmtp_v2_4_ssl-直接可用@qq\Article Source.htm
文件 874 2010-08-09 13:32 CSmtp_v2_4_ssl-直接可用@qq\Backup\CSmtp.sln
文件 3844 2008-08-18 14:23 CSmtp_v2_4_ssl-直接可用@qq\ba
文件 190 2008-07-18 20:30 CSmtp_v2_4_ssl-直接可用@qq\ba
文件 76596 2017-02-28 13:44 CSmtp_v2_4_ssl-直接可用@qq\CSmtp.cpp
文件 7298 2015-10-22 20:47 CSmtp_v2_4_ssl-直接可用@qq\CSmtp.h
文件 38338560 2017-03-02 14:35 CSmtp_v2_4_ssl-直接可用@qq\CSmtp.sdf
文件 955 2017-02-28 11:41 CSmtp_v2_4_ssl-直接可用@qq\CSmtp.sln
..A..H. 17920 2017-03-02 14:35 CSmtp_v2_4_ssl-直接可用@qq\CSmtp.v12.suo
文件 6477 2010-08-20 20:26 CSmtp_v2_4_ssl-直接可用@qq\CSmtp.vcproj
文件 7238 2017-02-28 11:41 CSmtp_v2_4_ssl-直接可用@qq\CSmtp.vcxproj
文件 1475 2017-02-28 11:41 CSmtp_v2_4_ssl-直接可用@qq\CSmtp.vcxproj.filters
文件 141050 2017-02-28 11:42 CSmtp_v2_4_ssl-直接可用@qq\Debug\ba
文件 2202624 2017-02-28 14:47 CSmtp_v2_4_ssl-直接可用@qq\Debug\CSmtp.exe
文件 5547784 2017-02-28 14:47 CSmtp_v2_4_ssl-直接可用@qq\Debug\CSmtp.ilk
文件 1470 2017-02-28 14:47 CSmtp_v2_4_ssl-直接可用@qq\Debug\CSmtp.log
文件 708761 2017-02-28 14:29 CSmtp_v2_4_ssl-直接可用@qq\Debug\CSmtp.obj
文件 9342976 2017-02-28 14:47 CSmtp_v2_4_ssl-直接可用@qq\Debug\CSmtp.pdb
文件 3026 2017-02-28 14:47 CSmtp_v2_4_ssl-直接可用@qq\Debug\CSmtp.tlog\cl.command.1.tlog
文件 98526 2017-02-28 14:47 CSmtp_v2_4_ssl-直接可用@qq\Debug\CSmtp.tlog\CL.read.1.tlog
文件 3092 2017-02-28 14:47 CSmtp_v2_4_ssl-直接可用@qq\Debug\CSmtp.tlog\CL.write.1.tlog
文件 178 2017-02-28 14:47 CSmtp_v2_4_ssl-直接可用@qq\Debug\CSmtp.tlog\CSmtp.lastbuildstate
文件 1482 2017-02-28 14:47 CSmtp_v2_4_ssl-直接可用@qq\Debug\CSmtp.tlog\li
文件 3764 2017-02-28 14:47 CSmtp_v2_4_ssl-直接可用@qq\Debug\CSmtp.tlog\li
文件 862 2017-02-28 14:47 CSmtp_v2_4_ssl-直接可用@qq\Debug\CSmtp.tlog\li
文件 219460 2017-02-28 14:47 CSmtp_v2_4_ssl-直接可用@qq\Debug\main.obj
文件 287653 2017-02-28 11:42 CSmtp_v2_4_ssl-直接可用@qq\Debug\md5.obj
文件 1182720 2017-02-28 14:47 CSmtp_v2_4_ssl-直接可用@qq\Debug\vc120.idb
文件 544768 2017-02-28 14:47 CSmtp_v2_4_ssl-直接可用@qq\Debug\vc120.pdb
文件 1877 2017-03-02 14:30 CSmtp_v2_4_ssl-直接可用@qq\main.cpp
............此处省略85个文件信息
相关资源
- Advanced C++____高清中文版PDF
- VC++数字图像处理
- C++语言和面向对象程序设计第二版
- LBG矢量量化图像压缩 c++代码
- Visual C++ 用户界面制作与应用 pdf VC
- C++ Primer Plus第五版中文版文字版
- 64位libstdc++.so.6.0.22,解决glibcxx not f
- vibe运动目标提取opencv C++源代码
- blender 源代码 c c++ git 2016-4-3同步获取
- VC++串口modbus测试工程
- Visual C++从入门到精通(第3版) 高清
- C++软件渲染管线
- 基于VS2010MFC平台使用C++编写的上位机
- C++内存管理课件——侯捷老师
- Programming principles and practice Using C++ (
- 黑马程序员最新24期C/C++全栈培训讲义
- QR码二维码编码C++源代码VS2010编译环境
- QR二维码解码,C++源代码VS2010编译环境
- 11_人脸检测与识别系统.zip
- Visual C++视频会议开发技术与源码.ra
- VC数字图像处理杨淑莹北京交通大学
- C++标准库MSDN离线文档-微软2017-10月发
- 数据结构(C++语言版)第三版超清带
- Visual C++范例大全 400+的
- 《Visual C++网络编程开发与实战》案例
- Visual C++网络编程开发与实战 案例源码
- C++ 孔令德计算机图形学习题答案源代
- VC++实现浏览器
- Visual C++ MFC棋牌类游戏编程五子棋,象
- C++TEST中文帮助文档
评论
共有 条评论