资源简介
POP3:
1.支持本地缓存最新的3封邮件。
2.正常解析出收件人、发件人、主题、日期、邮件内容。
3.正常解析无格式纯文本,支持中文、英文和中英混杂文本。
4.接收邮件时存在附件则弹出保存文件的对话框,无附件则对话框提示该邮件无附件。
5.支持删除指定的邮件。
6.列表显示当前服务器邮件的信息。
SMTP:
1.支持发送中英文的邮件。
2.支持给多人发送邮件,每个收件人之间用“;”隔开。
3.支持发送多个附件。
4.附件支持有限个常见的文件格式,如jpg、txt、doc、exe、rar、zip等。
代码片段和文件信息
// base64.cpp: implementation of the base64 class.
//
//////////////////////////////////////////////////////////////////////
#include “stdafx.h“
#include “POP3MailClient.h“
#include “base64.h“
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
base64::base64()
{
}
base64::~base64()
{
}
string base64::Encode(const char* Dataint DataByte)
{
//编码表
const char EncodeTable[]=“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/“;
//返回值
CString strEncode;
unsigned char Tmp[4]={0};
int LineLength=0;
for(int i=0;i<(int)(DataByte / 3);i++)
{
Tmp[1] = *Data++;
Tmp[2] = *Data++;
Tmp[3] = *Data++;
strEncode+= EncodeTable[Tmp[1] >> 2];
strEncode+= EncodeTable[((Tmp[1] << 4) | (Tmp[2] >> 4)) & 0x3F];
strEncode+= EncodeTable[((Tmp[2] << 2) | (Tmp[3] >> 6)) & 0x3F];
strEncode+= EncodeTable[Tmp[3] & 0x3F];
if(LineLength+=4LineLength==76) {strEncode+=“\r\n“;LineLength=0;}
}
//对剩余数据进行编码
int Mod=DataByte % 3;
if(Mod==1)
{
Tmp[1] = *Data++;
strEncode+= EncodeTable[(Tmp[1] & 0xFC) >> 2];
strEncode+= EncodeTable[((Tmp[1] & 0x03) << 4)];
strEncode+= “==“;
}
else if(Mod==2)
{
Tmp[1] = *Data++;
Tmp[2] = *Data++;
strEncode+= EncodeTable[(Tmp[1] & 0xFC) >> 2];
strEncode+= EncodeTable[((Tmp[1] & 0x03) << 4) | ((Tmp[2] & 0xF0) >> 4)];
strEncode+= EncodeTable[((Tmp[2] & 0x0F) << 2)];
strEncode+= “=“;
}
return strEncode;
}
CString base64::Decode(const char* Dataint DataByteint& OutByte)
{
//解码表
const char DecodeTable[] =
{
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
62 // ‘+‘
0 0 0
63 // ‘/‘
52 53 54 55 56 57 58 59 60 61 // ‘0‘-‘9‘
0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12
13 14 15 16 17 18 19 20 21 22 23 24 25 // ‘A‘-‘Z‘
0 0 0 0 0 0
26 27 28 29 30 31 32 33 34 35 36 37 38
39 40 41 42 43 44 45 46 47 48 49 50 51 // ‘a‘-‘z‘
};
//返回值
CString strDecode;
int nValue;
int i= 0;
while (i < DataByte)
{
if (*Data != ‘\r‘ && *Data!=‘\n‘)
{
nValue = DecodeTable[*Data++] << 18;
nValue += DecodeTable[*Data++] << 12;
strDecode+=(nValue & 0x00FF0000) >> 16;
OutByte++;
if (*Data != ‘=‘)
{
nValue += DecodeTable[*Data++] << 6;
strDecode+=(nVa
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4188 2015-06-11 12:29 MailClient\ba
文件 807 2015-06-11 12:29 MailClient\ba
文件 24268 2015-06-22 17:08 MailClient\POP3MailClient.aps
文件 3063 2015-06-23 19:34 MailClient\POP3MailClient.clw
文件 2269 2015-05-15 22:26 MailClient\POP3MailClient.cpp
文件 4570 2015-05-15 23:55 MailClient\POP3MailClient.dsp
文件 536 2015-05-15 22:26 MailClient\POP3MailClient.dsw
文件 1412 2015-05-15 22:26 MailClient\POP3MailClient.h
文件 271360 2015-06-23 19:34 MailClient\POP3MailClient.ncb
文件 56832 2015-06-23 19:34 MailClient\POP3MailClient.opt
文件 262 2015-06-23 19:29 MailClient\POP3MailClient.plg
文件 9337 2015-06-11 08:22 MailClient\POP3MailClient.rc
文件 46321 2015-06-11 12:53 MailClient\POP3MailClientDlg.cpp
文件 4327 2015-06-11 08:44 MailClient\POP3MailClientDlg.h
文件 1353 2015-05-15 22:48 MailClient\QuotedPrintable.cpp
文件 722 2015-05-15 22:48 MailClient\QuotedPrintable.h
文件 3723 2015-05-15 22:26 MailClient\ReadMe.txt
文件 1979 2015-06-10 20:19 MailClient\resource.h
文件 216 2015-05-15 22:26 MailClient\StdAfx.cpp
文件 1102 2015-05-15 22:26 MailClient\StdAfx.h
文件 1078 2015-05-15 22:26 MailClient\res\POP3MailClient.ico
文件 406 2015-05-15 22:26 MailClient\res\POP3MailClient.rc2
目录 0 2015-06-10 21:42 MailClient\res
目录 0 2015-06-23 19:34 MailClient
----------- --------- ---------- ----- ----
440131 24
- 上一篇:GPS时间转换
- 下一篇:VC6.0打开BMP位图程序白色彩色皆可
评论
共有 条评论