Dacons LLP Mailit for C/C++ Version 1.0.8

EmaiPOP3.h

Go to the documentation of this file.
00001 
00014 #ifndef __EMAIPOP3_H__
00015 #define __EMAIPOP3_H__
00016 
00017 #include <EmaiTypes.h>
00018 #include <EmaiErrors.h>
00019 #include <EmaiMessage.h>
00020 #include <EmaiProxy.h>
00021 
00022 #ifdef __cplusplus
00023     extern "C" {
00024 #endif
00025 
00026 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00027 typedef struct EmaiOpaquePop3Session*           EmaiPop3Session;
00028 typedef struct EmaiOpaquePop3MessageInfoList*   EmaiPop3MessageInfoList;
00029 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00030 
00031 /***************************************************
00032 //
00033 // Function for communicating with POP3 server
00034 //
00035 ***************************************************/
00036 
00043 enum EmaiEnumPop3Selector
00044 {
00045     EmaiPop3SelectorNormal          = 0,
00046     EmaiPop3SelectorReceiving,          
00047     EmaiPop3SelectorServerError         
00048 };
00049 
00055 enum EmaiEnumPop3OperationCode
00056 {
00057     EmaiPop3ConnectingToServer      = 0,
00058     EmaiPop3ConnectedToServer,
00059     EmaiPop3Authenticating,
00060     EmaiPop3Authenticated,
00061     EmaiPop3GettingMessageList,
00062     EmaiPop3GotMessageList,
00063     EmaiPop3GettingMessageUIDLs,
00064     EmaiPop3GotMessageUIDLs,
00065     EmaiPop3RetrievingMessage,
00066     EmaiPop3MessageRetrieved,
00067     EmaiPop3DeletingMessage,
00068     EmaiPop3MessageDeleted,
00069     EmaiPop3SendingNOOP,
00070     EmaiPop3NOOPSent,
00071     EmaiPop3ClosingConnection,
00072     EmaiPop3ConnectionClosed
00073 };
00074 
00080 enum EmaiEnumPop3ReplyCode
00081 {
00082     EmaiPop3NotSupported            = 0,
00083     EmaiPop3NoCode,                     
00084     EmaiPop3Unknown,                    
00085     EmaiPop3LoginDelay,                 
00086     EmaiPop3InUse,                      
00088     EmaiPop3System,                     
00089     EmaiPop3Auth                        
00091 };
00092 
00096 typedef struct
00097 {
00100     EmaiUint32                  version;
00101 
00102     EmaiUint32                  selector;
00103     union
00104     {
00106         struct
00107         {
00108             EmaiUint32          operationCode;
00109         } normal;
00110 
00112         struct
00113         {
00114             EmaiUint32          receivedSize;
00115             EmaiUint32          totalSize;
00116         } receiving;
00117 
00119         struct
00120         {
00121             EmaiConstCharPtr    serverReply;
00122             EmaiUint32          replyCode;      
00123         } serverError;
00124     } data;
00125 } EmaiPop3CallbackData;
00126 
00127 /*
00128 // Status callback declararion for POP3 session
00129 */
00130 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00131 typedef EMAICALLBACKAPI(EmaiError, EmaiPop3StatusCallback)(
00132         EmaiPop3Session inSession,
00133         const EmaiPop3CallbackData* inData,
00134         void* inUserData);
00135 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
00136 
00137 
00144 enum EmaiEnumPop3SSL
00145 {
00146     
00147     EmaiPop3UseSSLOption    = 0x01, 
00148                                 /* will connect only to secured SMTP servers.*/
00149 };
00150 
00164 EMAIAPI(EmaiError)
00165 EmaiPop3SessionCreate(
00166         EmaiPop3Session* outSession,
00167         EmaiPop3StatusCallback inStatusCallback,        /*can be NULL*/
00168         void* inUserData,
00169         EmaiUint32 inTimeout,
00170         EmaiOptions inOptions);
00171 
00172 
00179 enum EmaiEnumPop3Ports
00180 {
00181     EmaiDefaultPop3Port     = 110,  
00182     EmaiDefaultPop3SSLPort  = 995   
00183 };
00184 
00200 EMAIAPI(EmaiError)
00201 EmaiPop3Connect(
00202         EmaiPop3Session inSession,
00203         EmaiConstUniCharPtr inMailServer,
00204         short inPort,
00205         EmaiOptions inOptions);
00206 
00224 EMAIAPI(EmaiError)
00225 EmaiPop3ConnectEx(
00226         EmaiPop3Session inSession,
00227         EmaiConstUniCharPtr inMailServer,
00228         short inPort,
00229         const EmaiProxyInfo* inProxyInfo,
00230         void* inUserData,
00231         EmaiOptions inOptions);
00232 
00243 EMAIAPI(EmaiError)
00244 EmaiPop3Disconnect(
00245         EmaiPop3Session inSession,
00246         EmaiOptions inOptions);
00247 
00254 enum EmaiEnumPop3AuthSelector
00255 {
00257     EmaiPOP3AuthAutomatic,
00258 
00260     EmaiPOP3AuthLoginCommand,
00261 
00263     EmaiPOP3AuthApop,
00264 
00266     EmaiPOP3AuthLogin,
00267 
00269     EmaiPOP3AuthPlain,
00270 
00272     EmaiPOP3AuthCramMD5,
00273 
00275     EmaiPOP3AuthNTLM
00276 };
00277 
00294 EMAIAPI(EmaiError)
00295 EmaiPop3Authenticate(
00296         EmaiPop3Session inSession,
00297         EmaiConstUniCharPtr inAccount,
00298         EmaiConstUniCharPtr inPassword,
00299         EmaiOptions inOptions);
00300 
00324 EMAIAPI(EmaiError)
00325 EmaiPop3RetrieveMessageList(
00326         EmaiPop3Session inSession,
00327         EmaiPop3MessageInfoList inMessageInfoList,
00328         EmaiOptions inOptions);
00329 
00336 enum EmaiEnumPop3RetrieveAttribute
00337 {
00339     EmaiRetrieveRFC822Header = 1
00340 };
00341 
00357 EMAIAPI(EmaiError)
00358 EmaiPop3RetrieveMessage(
00359         EmaiPop3Session inSession,
00360         EmaiMessage* outMessage,
00361         EmaiUint32 inMessageNumber,
00362         EmaiOptions inOptions);
00363 
00375 EMAIAPI(EmaiError)
00376 EmaiPop3DeleteMessage(
00377         EmaiPop3Session inSession,
00378         EmaiUint32 inMessageNumber,
00379         EmaiOptions inOptions);
00380 
00391 EMAIAPI(EmaiError)
00392 EmaiPop3Reset(
00393         EmaiPop3Session inSession,
00394         EmaiOptions inOptions);
00395 
00404 EMAIAPI(EmaiError)
00405 EmaiPop3Cancel(
00406         EmaiPop3Session inSession,
00407         EmaiOptions inOptions);
00408 
00420 EMAIAPI(EmaiError)
00421 EmaiPop3Noop(
00422         EmaiPop3Session inSession,
00423         EmaiOptions inOptions);
00424 
00425 
00426 /***************************************************
00427 //
00428 // Function for managing messages history
00429 //
00430 ***************************************************/
00431 
00438 enum EmaiEnumPop3CreateMessageInfoFlags
00439 {
00440     EmaiCreateFileIfNotExists               = 1
00441 };
00442 
00454 EMAIAPI(EmaiError)
00455 EmaiPop3MessageInfoListCreateFromFile(
00456         EmaiPop3MessageInfoList* outMessageInfoList,
00457         EmaiConstUniCharPtr inFullFilePath,
00458         EmaiOptions inOptions);
00459 
00470 EMAIAPI(EmaiError)
00471 EmaiPop3MessageInfoListCreateFromData(
00472         EmaiPop3MessageInfoList* outMessageInfoList,
00473         const void* inMessageListData,
00474         EmaiUint32 inMessageListDataSize,
00475         EmaiOptions inOptions);
00476 
00487 EMAIAPI(EmaiError)
00488 EmaiPop3MessageInfoListGetHistoryData(
00489         EmaiPop3MessageInfoList inMessageInfoList,
00490         const void** outData,
00491         EmaiUint32& outDataSize,
00492         EmaiOptions inOptions);
00493 
00504 EMAIAPI(EmaiError)
00505 EmaiPop3MessageInfoListResetHistory(
00506         EmaiPop3MessageInfoList inMessageInfoList,
00507         EmaiConstUniCharPtr inAccount,
00508         EmaiConstUniCharPtr inServer,
00509         EmaiOptions inOptions);
00510 
00516 typedef struct
00517 {
00518     EmaiConstCharPtr                messageUID;         
00520     EmaiUint32                      messageNumber;      
00522     EmaiUint32                      messageSize;        
00527 
00528 
00543 
00547 
00549 
00551 
00567 
00583 
00606 
00620 
00624 
00626 
00641