⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chapter_4_1.cpp

📁 日本人开发的邮件解析 参考价值还是有的 很不错的资源
💻 CPP
字号:
#include    "emailkit.h"

struct  messagedata
{
    MKINT64  Size;
    char*    UID;
};

void    Pop3ClientCallBack_GetMailSizes( int , MKINT64, int, void* );
void    Pop3ClientCallBack_GetMailUIDs( int, const char*, int, void* );

int     main( int argc, char* argv[] )
{
    Pop3Client*    pPOP3;
    MimeMessage*   pMM;

    int             nCount, i;
    MKINT64         llSize;
    CMultiByteText  mtVal;
    messagedata*    data;

    // 僆僽僕僃僋僩偺惗惉
    pPOP3 = new Pop3Client();
    pMM   = new MimeMessage();

    pPOP3->put_Server( "mail.example.com" );
    pPOP3->put_UserID( "taro" );
    pPOP3->put_Password( "emailkit!" );
    pPOP3->put_Authentication( mkSaslPassword );

    // 愙懕
    if( pPOP3->Connect() == 0 )
    {
        // 儊僢僙乕僕悢偲崌寁僒僀僘傪庢摼
        pPOP3->GetSummary( &nCount, &llSize );

        if( nCount > 0)
        {
            // 梫慺悢=儊僢僙乕僕悢偺攝楍傪梡堄
            data = new messagedata[ nCount ];
            memset( data, 0, sizeof( messagedata ) * nCount );

            // 儊僢僙乕僕偺僒僀僘偲UID傪庢摼
            pPOP3->GetMailSizes( &Pop3ClientCallBack_GetMailSizes, nCount, data );
            pPOP3->GetMailUIDs( &Pop3ClientCallBack_GetMailUIDs, nCount, data );

            // 奺儊僢僙乕僕偵懳偟偰張棟傪峴偆
            for( i = 1; i <= nCount; i++ )
            {
                // 僨乕僞偺庢摼
                pPOP3->GetMail( i, mtVal );
                pMM->Decode( ( const char* )mtVal, mtVal.GetLength() );

//                      :

                // 僒乕僶偐傜偺嶍彍傪梊栺
                pPOP3->DeleteMail( i );
            }

            // 僒乕僶偐傜偺嶍彍傪僉儍儞僙儖
            pPOP3->UndoDelete();
        }

        // 愗抐 
        pPOP3->Disconnect();
    }

    delete  pMM;
    delete  pPOP3;

    return 0;
}

// 僐乕儖僶僢僋娭悢 
void    Pop3ClientCallBack_GetMailSizes( int msgno, MKINT64 size, int count, void* data )
{
    messagedata*    tbl = ( messagedata* )data;

    if( msgno < count )
    {
        tbl[ msgno - 1 ].Size = size;
    }
}

void    Pop3ClientCallBack_GetMailUIDs( int msgno, const char* uid, int count, void* data )
{
    messagedata*    tbl = ( messagedata* )data;

    if( msgno < count )
    {
        tbl[ msgno - 1 ].UID = new char[ strlen( uid ) + 1 ];
        strcpy( tbl[ msgno - 1 ].UID, uid );
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -