资源简介
编写POP3协议登录163邮箱查看里面的邮件,里面解析邮件可以学习一下,解析Base64编码,UTF-8编码的邮件,分析信头字段.
代码片段和文件信息
#include “h.h“
//base64转明文
char table[] =
{
‘A‘ ‘B‘ ‘C‘ ‘D‘ ‘E‘ ‘F‘ ‘G‘
‘H‘ ‘I‘ ‘J‘ ‘K‘ ‘L‘ ‘M‘ ‘N‘
‘O‘ ‘P‘ ‘Q‘ ‘R‘ ‘S‘ ‘T‘ ‘U‘
‘V‘ ‘W‘ ‘X‘ ‘Y‘ ‘Z‘ ‘a‘ ‘b‘
‘c‘ ‘d‘ ‘e‘ ‘f‘ ‘g‘ ‘h‘ ‘i‘
‘j‘ ‘k‘ ‘l‘ ‘m‘ ‘n‘ ‘o‘ ‘p‘
‘q‘ ‘r‘ ‘s‘ ‘t‘ ‘u‘ ‘v‘ ‘w‘
‘x‘ ‘y‘ ‘z‘ ‘0‘ ‘1‘ ‘2‘ ‘3‘
‘4‘ ‘5‘ ‘6‘ ‘7‘ ‘8‘ ‘9‘ ‘+‘
‘/‘ ‘=‘
};
char* base64_decode(const char *src)
{
int count = 0 len = 0;
char *dst = NULL;
int tmp = 0 buf = 0;
int i = 0 j = 0 k = 0;
char in[5] = { 0 };
len = strlen(src);
count = len / 4;
dst = (char *)malloc(count * 3 + 1);
memset(dst 0 count * 3 + 1);
for (j = 0; j < count; j++)
{
memset(in 0 sizeof(in));
strncpy_s(in src + j * 4 4);
buf = 0;
for (i = 0; i < 4; i++)
{
tmp = (long)in[i];
if (tmp == ‘=‘)
{
tmp = 0;
}
else
{
for (k = 0; ; k++)
{
if (table[k] == tmp)
break;
}
tmp = k;
}
tmp <<= (18 - i * 6);
buf |= tmp;
}
for (i = 0; i < 3; i++)
{
tmp = buf >> (16 - i * 8);
tmp &= 0xff;
dst[j * 3 + i] = tmp;
}
}
return dst;
}
char* Utf8ToAscii(const char* szU8) //以\0结尾
{
//先转换为Unicode字符串
//预转换,得到所需空间的大小;
int wcsLen = ::MultiByteToWideChar(CP_UTF8 0 szU8 strlen(szU8) NULL 0);
//分配空间要给‘\0‘留个空间,MultiByteToWideChar不会给‘\0‘空间
wchar_t* wszString = new wchar_t[wcsLen + 1];
if (!wszString)
return NULL;
//转换
::MultiByteToWideChar(CP_UTF8 NULL szU8 strlen(szU8) wszString wcsLen);
//最后加上‘\0‘
wszString[wcsLen] = ‘\0‘;
//转换为Ascii字符串
int asciilen = WideCharToMultiByte(CP_ACP 0 wszString -1 NULL 0 ‘\0‘ NULL);
char* ascii = new char[asciilen + 1];
if (!ascii)
{
delete[]wszString;
return NULL;
}
WideCharToMultiByte(CP_ACP 0 wszString -1 ascii asciilen ‘\0‘ NULL);
ascii[asciilen] = ‘\0‘;
delete[]wszString;
return ascii;
} 属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-11-01 14:20 POP3\
目录 0 2017-11-01 14:05 POP3\.vs\
目录 0 2017-11-01 14:05 POP3\.vs\POP3\
目录 0 2017-11-01 14:05 POP3\.vs\POP3\v14\
文件 55808 2017-11-01 14:20 POP3\.vs\POP3\v14\.suo
目录 0 2017-11-01 14:20 POP3\Debug\
目录 0 2017-11-01 14:19 POP3\POP3\
目录 0 2017-11-01 14:19 POP3\POP3\Debug\
文件 786 2017-11-01 14:19 POP3\POP3\Debug\POP3.Build.CppClean.log
文件 3 2017-11-01 14:19 POP3\POP3\Debug\POP3.log
目录 0 2017-11-01 14:20 POP3\POP3\Debug\POP3.tlog\
文件 2060 2017-11-01 01:33 POP3\POP3\Func.cpp
文件 6190 2017-10-30 16:32 POP3\POP3\POP3.vcxproj
文件 1324 2017-10-30 16:32 POP3\POP3\POP3.vcxproj.filters
目录 0 2017-11-01 14:19 POP3\POP3\Release\
文件 3 2017-11-01 14:19 POP3\POP3\Release\POP3.log
文件 426 2017-11-01 14:18 POP3\POP3\h.h
文件 1264 2017-11-01 14:18 POP3\POP3\pop3.cpp
文件 1688 2017-11-01 13:39 POP3\POP3\pop3.h
文件 17649 2017-11-01 13:51 POP3\POP3\popFunc.cpp
文件 29544448 2017-11-01 14:20 POP3\POP3.VC.db
文件 1294 2017-10-30 00:46 POP3\POP3.sln
川公网安备 51152502000135号
评论
共有 条评论