资源简介
这是一个由老外写的比较新的发送邮件的项目CSmtp,使用VS2008编译,经测试,常用的163、QQ、126、sohu、outlook都支持,唯独163发送到QQ会失败
代码片段和文件信息
/*
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]);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-08-13 16:47 CSmtp_v2.4\
文件 17536 2013-08-17 11:22 CSmtp_v2.4\Article Source.htm
文件 3844 2008-08-18 14:23 CSmtp_v2.4\ba
文件 190 2008-07-18 20:30 CSmtp_v2.4\ba
文件 76597 2015-10-22 21:28 CSmtp_v2.4\CSmtp.cpp
文件 7298 2015-10-22 20:47 CSmtp_v2.4\CSmtp.h
文件 875 2018-08-13 16:46 CSmtp_v2.4\CSmtp.sln
文件 6541 2018-08-13 16:46 CSmtp_v2.4\CSmtp.vcproj
文件 1652 2012-11-03 23:20 CSmtp_v2.4\main.cpp
文件 13673 2013-03-08 23:47 CSmtp_v2.4\md5.cpp
文件 4441 2010-08-14 21:57 CSmtp_v2.4\md5.h
目录 0 2013-07-10 22:31 CSmtp_v2.4\openssl-0.9.8l\
目录 0 2013-07-10 22:31 CSmtp_v2.4\openssl-0.9.8l\inc32\
目录 0 2013-07-10 22:31 CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\
文件 5682 2010-01-08 11:59 CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\aes.h
文件 48773 2010-01-08 11:59 CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\asn1.h
文件 28073 2010-01-08 11:59 CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\asn1t.h
文件 18956 2010-01-08 11:59 CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\asn1_mac.h
文件 30822 2010-01-08 11:59 CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\bio.h
文件 5173 2010-01-08 11:59 CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\blowfish.h
文件 33562 2010-01-08 11:59 CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\bn.h
文件 4565 2010-01-08 11:59 CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\buffer.h
文件 4453 2010-01-08 11:59 CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\cast.h
文件 1978 2010-01-08 11:59 CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\comp.h
文件 9484 2010-01-08 11:59 CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\conf.h
文件 4080 2010-01-08 11:59 CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\conf_api.h
文件 24217 2010-01-08 11:59 CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\crypto.h
文件 10736 2010-01-08 11:59 CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\des.h
文件 18238 2010-01-08 11:59 CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\des_old.h
文件 8654 2010-01-08 11:59 CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\dh.h
文件 11674 2010-01-08 11:59 CSmtp_v2.4\openssl-0.9.8l\inc32\openssl\dsa.h
............此处省略55个文件信息
评论
共有 条评论