用C++编写的发送邮件的程序,很好用,可以包含邮件正文内容,还可以包含附件,功能强大。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3842 2016-05-21 15:04 CSmtp_v1_4ase64.cpp
文件 190 2008-07-18 20:30 CSmtp_v1_4ase64.h
文件 25068 2016-05-22 20:55 CSmtp_v1_4CSmtp.cpp
文件 4511 2008-08-22 02:39 CSmtp_v1_4CSmtp.dsp
文件 535 2008-08-20 14:05 CSmtp_v1_4CSmtp.dsw
文件 3769 2009-03-05 15:04 CSmtp_v1_4CSmtp.h
文件 41984 2009-03-05 15:11 CSmtp_v1_4CSmtp.ncb
文件 48640 2009-03-05 15:11 CSmtp_v1_4CSmtp.opt
文件 2274 2009-03-05 15:11 CSmtp_v1_4CSmtp.plg
文件 7680 2016-09-03 21:59 CSmtp_v1_4CSmtp.v12.suo
文件 6437 2016-05-21 14:55 CSmtp_v1_4CSmtp.vcxproj
文件 1297 2016-05-21 14:53 CSmtp_v1_4CSmtp.vcxproj.filters
文件 164481 2016-09-03 21:59 CSmtp_v1_4Debugase64.obj
文件 1072 2016-05-22 20:55 CSmtp_v1_4DebugCSmtp.Build.CppClean.log
文件 704000 2016-09-03 21:59 CSmtp_v1_4DebugCSmtp.exe
文件 1722512 2016-09-03 21:59 CSmtp_v1_4DebugCSmtp.ilk
文件 37214 2016-09-03 21:59 CSmtp_v1_4DebugCSmtp.log
文件 507945 2016-09-03 21:59 CSmtp_v1_4DebugCSmtp.obj
文件 3525632 2016-09-03 21:59 CSmtp_v1_4DebugCSmtp.pdb
文件 7886 2016-09-03 21:59 CSmtp_v1_4DebugCSmtp.tlogcl.command.1.tlog
文件 139014 2016-09-03 21:59 CSmtp_v1_4DebugCSmtp.tlogCL.read.1.tlog
文件 3672 2016-09-03 21:59 CSmtp_v1_4DebugCSmtp.tlogCL.write.1.tlog
文件 169 2016-09-03 21:59 CSmtp_v1_4DebugCSmtp.tlogCSmtp.lastbuildstate
文件 6220 2016-09-03 21:59 CSmtp_v1_4DebugCSmtp.tloglink.command.1.tlog
文件 8238 2016-09-03 21:59 CSmtp_v1_4DebugCSmtp.tloglink.read.1.tlog
文件 2192 2016-09-03 21:59 CSmtp_v1_4DebugCSmtp.tloglink.write.1.tlog
文件 175073 2016-09-03 21:59 CSmtp_v1_4Debugmain.obj
文件 1805312 2016-09-03 21:59 CSmtp_v1_4Debugvc120.idb
文件 495616 2016-09-03 21:59 CSmtp_v1_4Debugvc120.pdb
文件 1150 2016-09-03 21:59 CSmtp_v1_4main.cpp
............此处省略8个文件信息
/*
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] = ‘ ‘;
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_4a
文件 190 2008-07-18 20:30 CSmtp_v1_4a
文件 25068 2016-05-22 20:55 CSmtp_v1_4CSmtp.cpp
文件 4511 2008-08-22 02:39 CSmtp_v1_4CSmtp.dsp
文件 535 2008-08-20 14:05 CSmtp_v1_4CSmtp.dsw
文件 3769 2009-03-05 15:04 CSmtp_v1_4CSmtp.h
文件 41984 2009-03-05 15:11 CSmtp_v1_4CSmtp.ncb
文件 48640 2009-03-05 15:11 CSmtp_v1_4CSmtp.opt
文件 2274 2009-03-05 15:11 CSmtp_v1_4CSmtp.plg
文件 7680 2016-09-03 21:59 CSmtp_v1_4CSmtp.v12.suo
文件 6437 2016-05-21 14:55 CSmtp_v1_4CSmtp.vcxproj
文件 1297 2016-05-21 14:53 CSmtp_v1_4CSmtp.vcxproj.filters
文件 164481 2016-09-03 21:59 CSmtp_v1_4Debuga
文件 1072 2016-05-22 20:55 CSmtp_v1_4DebugCSmtp.Build.CppClean.log
文件 704000 2016-09-03 21:59 CSmtp_v1_4DebugCSmtp.exe
文件 1722512 2016-09-03 21:59 CSmtp_v1_4DebugCSmtp.ilk
文件 37214 2016-09-03 21:59 CSmtp_v1_4DebugCSmtp.log
文件 507945 2016-09-03 21:59 CSmtp_v1_4DebugCSmtp.obj
文件 3525632 2016-09-03 21:59 CSmtp_v1_4DebugCSmtp.pdb
文件 7886 2016-09-03 21:59 CSmtp_v1_4DebugCSmtp.tlogcl.command.1.tlog
文件 139014 2016-09-03 21:59 CSmtp_v1_4DebugCSmtp.tlogCL.read.1.tlog
文件 3672 2016-09-03 21:59 CSmtp_v1_4DebugCSmtp.tlogCL.write.1.tlog
文件 169 2016-09-03 21:59 CSmtp_v1_4DebugCSmtp.tlogCSmtp.lastbuildstate
文件 6220 2016-09-03 21:59 CSmtp_v1_4DebugCSmtp.tlogli
文件 8238 2016-09-03 21:59 CSmtp_v1_4DebugCSmtp.tlogli
文件 2192 2016-09-03 21:59 CSmtp_v1_4DebugCSmtp.tlogli
文件 175073 2016-09-03 21:59 CSmtp_v1_4Debugmain.obj
文件 1805312 2016-09-03 21:59 CSmtp_v1_4Debugvc120.idb
文件 495616 2016-09-03 21:59 CSmtp_v1_4Debugvc120.pdb
文件 1150 2016-09-03 21:59 CSmtp_v1_4main.cpp
............此处省略8个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)