MFC邮件客户端支持收发邮件


MFC邮件客户端(支持收发邮件)
资源截图
代码片段和文件信息
#include “StdAfx.h“
#include “base64.h“

// 静态成员初始化7-bit 字母表.
CString Cbase64::m_sbase64Alphabet = 
_T( “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/“ );

Cbase64::Cbase64(void)
{
}


Cbase64::~Cbase64(void)
{
}

//---------------------------------------------------------------------------
CString Cbase64::Encode(LPCTSTR szEncodingint nSize)
{
CString sOutput = _T( ““ );
int nNumBits;
UINT nDigit;
int lp = 0;

if( szEncoding == NULL )
return sOutput;

m_szInput = szEncoding;
m_nInputSize = nSize;

m_nBitsRemaining = 0;
nDigit = ReadBits(&nNumBits lp );
while( nNumBits > 0 )
{
sOutput += m_sbase64Alphabet[ (int)nDigit ];
nDigit = ReadBits(&nNumBits lp );
}

while( sOutput.GetLength() % 4 != 0 )
{
sOutput += ‘=‘;
}
return sOutput;
}

//---------------------------------------------------------------------------
// 输出缓冲区大小不小于 3/4 输入缓冲区大小. 为了简便它们的大小取为一致.
int Cbase64::Decode(LPCTSTR szDecoding LPTSTR szOutput)
{
    int c lp =0;
int i;
int nDigit;
    int nDecode[ 256 ];

ASSERT( szDecoding != NULL );
ASSERT( szOutput != NULL );
if( szOutput == NULL )  
return 0;

if( szDecoding == NULL )
return 0;

CString sInput = szDecoding;
if( sInput.GetLength() == 0 )
return 0;

// 建立解码表.
for( int i = 0; i < 256; i++ ) 
nDecode[i] = -2; // 非法数字.
for(i=0; i < 64; i++ )
{
nDecode[ m_sbase64Alphabet[ i ] ] = i;
nDecode[ m_sbase64Alphabet[ i ] | 0x80 ] = i; // 忽略8th bit.
nDecode[ ‘=‘ ] = -1; 
nDecode[ ‘=‘ | 0x80 ] = -1; 
    }

// 清除输出缓冲区.
memset( szOutput 0 sInput.GetLength() + 1 );

// 对输入数据进行解码.
for( lp = 0 i = 0; lp < sInput.GetLength(); lp++ )
{
c = sInput[ lp ];
nDigit = nDecode[ c & 0x7F ];
if( nDigit < -1 ) 
{
return 0;

else if( nDigit >= 0 ) 
WriteBits( nDigit & 0x3F szOutput i );
    }
return i;
}

//---------------------------------------------------------------------------
UINT Cbase64::ReadBits(int * pBitsRead int& lp)
{
    ULONG lScratch;
    while( ( m_nBitsRemaining < 6 ) && 
   ( lp < m_nInputSize ) ) 
{
int c = m_szInput[ lp++ ];
        m_lBitStorage <<= 8;
        m_lBitStorage |= (c & 0xff);
m_nBitsRemaining += 8;
    }

    if( m_nBitsRemaining < 6 ) 
{
lScratch = m_lBitStorage << ( 6 - m_nBitsRemaining );
*pBitsRead = m_nBitsRemaining;
m_nBitsRemaining = 0;
    } 
else 
{
lScratch = m_lBitStorage >> ( m_nBitsRemaining - 6 );
*pBitsRead = 6;
m_nBitsRemaining -= 6;
    }

    return (UINT)lScratch & 0x3F;
}

//---------------------------------------------------------------------------
void Cbase64::WriteBits(UINT nBits LPTSTR szOutput int& i)
{
UINT nScratch;

m_lBitStorage = (m_lBitStorage << 6) | nBits;
m_nBitsRemaining += 6;
while( m_nBitsRemaining > 7 ) 
{
nScratch = m_lBitStorage >> (m_nBitsRemaining - 8);
szOutput[ i++ ] = nScratch & 0xFF;
m_nBitsRemaining -= 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-10-25 10:50  MailClient
     目录           0  2013-10-25 10:50  MailClientDebug
     文件      219136  2013-10-24 19:46  MailClientDebugMailClient.exe
     文件     1763972  2013-10-24 19:46  MailClientDebugMailClient.ilk
     文件     5409792  2013-10-24 19:46  MailClientDebugMailClient.pdb
     目录           0  2013-10-25 10:50  MailClientMailClient
     文件        3076  2013-10-22 10:05  MailClientMailClientase64.cpp
     文件         517  2013-10-22 09:56  MailClientMailClientase64.h
     目录           0  2013-10-25 10:50  MailClientMailClientDebug
     文件       20176  2013-10-24 19:33  MailClientMailClientDebugase64.obj
     文件       78528  2013-10-24 19:46  MailClientMailClientDebugCL.read.1.tlog
     文件       23168  2013-10-24 19:46  MailClientMailClientDebugCL.write.1.tlog
     文件       22062  2013-10-14 20:26  MailClientMailClientDebugDAO_ACCESSDlg.obj
     文件       73834  2013-10-24 19:33  MailClientMailClientDebugLoginDlg.obj
     文件         667  2013-10-11 13:28  MailClientMailClientDebugMailClient.exe.embed.manifest
     文件         732  2013-10-11 13:28  MailClientMailClientDebugMailClient.exe.embed.manifest.res
     文件         381  2013-10-24 19:46  MailClientMailClientDebugMailClient.exe.intermediate.manifest
     文件          64  2013-10-24 20:04  MailClientMailClientDebugMailClient.lastbuildstate
     文件        1047  2013-10-24 20:04  MailClientMailClientDebugMailClient.log
     文件       29793  2013-10-24 19:33  MailClientMailClientDebugMailClient.obj
     文件    34406400  2013-10-24 19:33  MailClientMailClientDebugMailClient.pch
     文件       73048  2013-10-24 19:33  MailClientMailClientDebugMailClient.res
     文件         707  2013-10-11 13:27  MailClientMailClientDebugMailClient.vcxprojResolveAssemblyReference1.cache
     文件           0  2013-10-11 13:27  MailClientMailClientDebugMailClient.write.1.tlog
     文件      101824  2013-10-24 19:46  MailClientMailClientDebugMailClientDlg.obj
     文件         210  2013-10-11 13:28  MailClientMailClientDebugMailClient_manifest.rc
     文件       19843  2013-10-14 21:21  MailClientMailClientDebugMailSmtp.obj
     文件       29385  2013-10-24 19:33  MailClientMailClientDebugPop3.obj
     文件       20605  2013-10-24 19:33  MailClientMailClientDebugSmtp.obj
     文件       12599  2013-10-24 19:33  MailClientMailClientDebugWSocket.obj
     文件       89843  2013-10-24 19:33  MailClientMailClientDebugWriteDlg.obj
............此处省略128个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)