资源简介
用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++课程设计贪吃蛇源码+课设报告
相关资源
- C++课程设计贪吃蛇源码+课设报告
- C++程序设计题解与上机指导.pdf
- C++的pb_ds库在OI中的应用.pdf )
- VC++上位机API编程转
- C++图书管理系统包括源码,论文,以
- C++ 写的串口通信 DLL文件
- ECOS求解器求解二阶锥问题C语言程序
- 五子棋mfc,带ai,附教程
- c++ 编写的自动售货机程序
- accelerated c++ 英文版及源码
- 摄影测量 单向空间后方交会程序
- DICOM图像c++打开程序
- VC++药品信息管理系统源码
- c++数据结构实现经典背包问题
- C++矩阵处理工具——Eigen3
- 数据结构课程设计:表达式求值,C
- 《Visual C++ OpenGL DirectX三维动画编程宝
- 农夫过河狼,羊,菜C++实现
- n皇后动态可视化 简单 C++ MFC
- opencv视觉定位,C++编写的
- svm算法源代码VC++实现
- opengl做的迷宫游戏,基于C++
- (LSB算法)数字水印的VC++实现
- visual c++ 网络编程 郑阿奇 源码
- Effective C++ 中英文,mobi格式,适合k
- VC++MFC最好最全入门教程
- 飞行棋c++代码
- VC++实现打印
- 简单本地DNS服务器实现代码C++
-
用c++实现的简单xm
l解析
评论
共有 条评论