以下是我从pop服务器接受到的信息
+OK
Received: from PRO19 by btmailsev.bbt.com.cn with SMTP (Microsoft Exchange Internet Mail Service Version 5.0.1457.7)
id KWN1ANXB; Wed, 16 May 2001 15:24:16 +0800
Message-ID: <[email protected]>
From: "hxh" <[email protected]>
To: "hxh" <[email protected]>
Subject: hi
Date: Wed, 16 May 2001 15:24:50 +0800
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_0024_01C0DE1C.590ABB60"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2919.6700
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400This is a multi-part message in MIME format.------=_NextPart_000_0024_01C0DE1C.590ABB60
Content-Type: text/plain;
charset="gb2312"
Content-Transfer-Encoding: base64YXNkYXNkYXNkYXNkYXNkYXNkYXNkYXNkYXNkDQo=------=_NextPart_000_0024_01C0DE1C.590ABB60
Content-Type: text/html;
charset="gb2312"
Content-Transfer-Encoding: base64PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9X憎eM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwv
L0VOIj48SFRNTD4NCjxIRUFEPg0KPE1FVEEgSFRUUC1FUVVJVj0iQ29udGVudC1UeXBlIiBDT05U
RU5UPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXMtYXNjaWkiPg0KDQo8TUVUQSBjb250ZW50PSJNU0hU
TUwgNS41MC40MTM0LjYwMCIgbmFtZT1HRU5FUkFUT1I+PFNUWUxFPjwvU1RZTEU+DQo8L0hFQUQ+
DQoNCjxCT0RZIGJnQ29sb3I9I2ZmZmZmZj48UD48Rk9OVCBTSVpFPTIgRkFDRT0iQXJpYWwiPmFz
ZGFzZGFzZGFzZGFzZGFzZGFzZGFzZGFzZDwvRk9OVD48L1A+DQoNCjwvQk9EWT4NCjwvSFRNTD4=------=_NextPart_000_0024_01C0DE1C.590ABB60--
信件的内容未
asdasdasdasdasdasdasdasdasd
+OK
Received: from PRO19 by btmailsev.bbt.com.cn with SMTP (Microsoft Exchange Internet Mail Service Version 5.0.1457.7)
id KWN1ANXB; Wed, 16 May 2001 15:24:16 +0800
Message-ID: <[email protected]>
From: "hxh" <[email protected]>
To: "hxh" <[email protected]>
Subject: hi
Date: Wed, 16 May 2001 15:24:50 +0800
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_0024_01C0DE1C.590ABB60"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2919.6700
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400This is a multi-part message in MIME format.------=_NextPart_000_0024_01C0DE1C.590ABB60
Content-Type: text/plain;
charset="gb2312"
Content-Transfer-Encoding: base64YXNkYXNkYXNkYXNkYXNkYXNkYXNkYXNkYXNkDQo=------=_NextPart_000_0024_01C0DE1C.590ABB60
Content-Type: text/html;
charset="gb2312"
Content-Transfer-Encoding: base64PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9X憎eM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwv
L0VOIj48SFRNTD4NCjxIRUFEPg0KPE1FVEEgSFRUUC1FUVVJVj0iQ29udGVudC1UeXBlIiBDT05U
RU5UPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXMtYXNjaWkiPg0KDQo8TUVUQSBjb250ZW50PSJNU0hU
TUwgNS41MC40MTM0LjYwMCIgbmFtZT1HRU5FUkFUT1I+PFNUWUxFPjwvU1RZTEU+DQo8L0hFQUQ+
DQoNCjxCT0RZIGJnQ29sb3I9I2ZmZmZmZj48UD48Rk9OVCBTSVpFPTIgRkFDRT0iQXJpYWwiPmFz
ZGFzZGFzZGFzZGFzZGFzZGFzZGFzZGFzZDwvRk9OVD48L1A+DQoNCjwvQk9EWT4NCjwvSFRNTD4=------=_NextPart_000_0024_01C0DE1C.590ABB60--
信件的内容未
asdasdasdasdasdasdasdasdasd
L0VOIj48SFRNTD4NCjxIRUFEPg0KPE1FVEEgSFRUUC1FUVVJVj0iQ29udGVudC1UeXBlIiBDT05U
RU5UPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXMtYXNjaWkiPg0KDQo8TUVUQSBjb250ZW50PSJNU0hU
TUwgNS41MC40MTM0LjYwMCIgbmFtZT1HRU5FUkFUT1I+PFNUWUxFPjwvU1RZTEU+DQo8L0hFQUQ+
DQoNCjxCT0RZIGJnQ29sb3I9I2ZmZmZmZj48UD48Rk9OVCBTSVpFPTIgRkFDRT0iQXJpYWwiPmFz
ZGFzZGFzZGFzZGFzZGFzZGFzZGFzZGFzZDwvRk9OVD48L1A+DQoNCjwvQk9EWT4NCjwvSFRNTD4
进行解码
好的请教一下什么叫MIMe编码?
还的请教一下什么叫MIMe编码?
{
if(m_strBFilePath.IsEmpty()){
AfxMessageBox("必须选定一个文件!");
return;
} if(m_strQFilePath.IsEmpty())
m_strQFilePath = m_strBFilePath+".nml"; CFile fB64(m_strBFilePath,CFile::modeRead);//base64's file
CFile fQuoted(m_strQFilePath,CFile::modeCreate|CFile::modeWrite);//normal file
if (fB64.m_hFile == CFile::hFileNull){
AfxMessageBox(_T("Couldn't open the base64 file!"));
return;
}
if (fQuoted.m_hFile == CFile::hFileNull){
AfxMessageBox(_T("Couldn't create the uoted_printable file!"));
return;
} CString strValidCode(CodeList); DWORD dwFileLen = fB64.GetLength();
DWORD dwCode=0;
char c1,c2,c3,c4;
char b1,b2,b3,b4;
while(dwFileLen > 0)
{
dwCode=0;
b1=b2=b3=b4=64; //首先,读取四个NVT ASCII字符,但是必须忽略不属于Base64编码集合的
//字符,像CR,LF等
while(dwFileLen > 0){
if(fB64.Read(&c1,1)==1)
dwFileLen--;
else
break;
if((b1=strValidCode.Find(c1))!=-1)
break;
}
while(dwFileLen > 0){
if(fB64.Read(&c2,1)==1)
dwFileLen--;
else
break;
if((b2=strValidCode.Find(c2))!=-1)
break;
}
while(dwFileLen > 0){
if(fB64.Read(&c3,1)==1)
dwFileLen--;
else
break;
if((b3=strValidCode.Find(c3))!=-1)
break;
}
while(dwFileLen > 0){
if(fB64.Read(&c4,1)==1)
dwFileLen--;
else
break;
if((b4=strValidCode.Find(c4))!=-1)
break;
} //解码变换
dwCode =b1;
dwCode=(dwCode<<6)+b2;
dwCode=(b3==64) ? (dwCode << 6) : (dwCode<<6)+b3;
dwCode=(b4==64) ? (dwCode << 6) : (dwCode<<6)+b4; //写入文件
char* pCh = (char*)&dwCode;
if(b4==64){//结尾为一个填充字符'=',必须删除,只能写入两个字节真实数据
fQuoted.Write(pCh+2,1);
fQuoted.Write(pCh+1,1);
}
else{
if(b3==64){
//只能写入一个字节,因为后面填充了两个'='
fQuoted.Write(pCh+2,1);
}
else{
//对于没有填充符的情况,必须写入三个字节的数据
fQuoted.Write(pCh+2,1);
fQuoted.Write(pCh+1,1);
fQuoted.Write(pCh,1);
}
}
} AfxMessageBox("base64->normal成功!");
fB64.Close();
fQuoted.Close();
}