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

📄 chapter_4_1.c

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

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

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

int     main( int argc, char* argv[] )
{
    Pop3Client_p*    pPOP3;
    MimeMessage_p*   pMM;

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

    /* 僆僽僕僃僋僩偺惗惉 */
    pPOP3 = new_Pop3Client();
    pMM   = new_MimeMessage();

    mtVal = new_CMultiByteText();

/*    Pop3Client_put_Server( pPOP3, "mail.example.com" ); */
    Pop3Client_put_Server( pPOP3, "10.204.178.221" );
    Pop3Client_put_UserID( pPOP3, "taro" );
    Pop3Client_put_Password( pPOP3, "emailkit!" );
    Pop3Client_put_Authentication( pPOP3, mkSaslPassword );

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

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

            /* 儊僢僙乕僕偺僒僀僘偲UID傪庢摼 */
            Pop3Client_GetMailSizes( pPOP3, &Pop3ClientCallBack_GetMailSizes, nCount, data );
            Pop3Client_GetMailUIDs( pPOP3, &Pop3ClientCallBack_GetMailUIDs, nCount, data );

            /* 奺儊僢僙乕僕偵懳偟偰張棟傪峴偆 */
            for( i = 1; i <= nCount; i++ )
            {
                /* 僨乕僞偺庢摼 */
                Pop3Client_GetMail( pPOP3, i, mtVal );

                MimeMessage_Decode( pMM, CMultiByteText_GetText( mtVal ),
                                    CMultiByteText_GetLength( mtVal ) );

//                      :

                /* 僒乕僶偐傜偺嶍彍傪梊栺 */
                Pop3Client_DeleteMail( pPOP3, i );
            }

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

        /* 愗抐 */
        Pop3Client_Disconnect( pPOP3 );
    }

    delete_MimeMessage( pMM );
    delete_Pop3Client( pPOP3 );
    delete_CMultiByteText( mtVal );

    return 0;
}

/* 僐乕儖僶僢僋娭悢 */
void    Pop3ClientCallBack_GetMailSizes( int msgno, MKINT64 size, int count, void* data )
{
    messagedata*    tbl;
    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;
    tbl = ( messagedata* )data;

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

⌨️ 快捷键说明

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