资源简介
c++ smpt发送邮件类 ssl/tls
比较好用 转自codeproject

代码片段和文件信息
/*
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]);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9195 2011-06-23 07:42 CSmtp_v2_1_ssl\Article Source.htm
文件 3844 2008-08-18 13:23 CSmtp_v2_1_ssl\ba
文件 190 2008-07-18 19:30 CSmtp_v2_1_ssl\ba
文件 72094 2012-11-06 06:20 CSmtp_v2_1_ssl\CSmtp.cpp
文件 7142 2012-11-03 22:27 CSmtp_v2_1_ssl\CSmtp.h
文件 874 2010-08-09 12:32 CSmtp_v2_1_ssl\CSmtp.sln
文件 6477 2010-08-20 19:26 CSmtp_v2_1_ssl\CSmtp.vcproj
文件 1652 2012-11-03 22:20 CSmtp_v2_1_ssl\main.cpp
文件 13660 2012-11-03 20:00 CSmtp_v2_1_ssl\md5.cpp
文件 4441 2010-08-14 20:57 CSmtp_v2_1_ssl\md5.h
文件 5682 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\aes.h
文件 48773 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\asn1.h
文件 18956 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\asn1_mac.h
文件 28073 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\asn1t.h
文件 30822 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\bio.h
文件 5173 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\blowfish.h
文件 33562 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\bn.h
文件 4565 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\buffer.h
文件 4453 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\cast.h
文件 1978 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\comp.h
文件 9484 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\conf.h
文件 4080 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\conf_api.h
文件 24217 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\crypto.h
文件 10736 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\des.h
文件 18238 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\des_old.h
文件 8654 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\dh.h
文件 11674 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\dsa.h
文件 16252 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\dso.h
文件 6323 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\dtls1.h
文件 9632 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\e_os2.h
文件 540 2010-01-08 10:59 CSmtp_v2_1_ssl\openssl-0.9.8l\inc32\openssl\ebcdic.h
............此处省略50个文件信息
- 上一篇:集合覆盖问题包括程序、文档
- 下一篇:圆弧算法MFC
相关资源
- 国际象棋的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++多边形交并差运算
评论
共有 条评论