Pop3.h
上传用户:pyhyhg
上传日期:2022-08-11
资源大小:56k
文件大小:2k
源码类别:

Email客户端

开发平台:

Visual C++

  1. // Pop3.h: interface for the CPop3 class.
  2. // feel free to e-mail me!
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_POP31_H__1957A2DC_027A_43AF_82B6_789B397147F3__INCLUDED_)
  5. #define AFX_POP31_H__1957A2DC_027A_43AF_82B6_789B397147F3__INCLUDED_
  6. #include "Pop3Base4.h"
  7. #include <vector>
  8. #include <strstream>
  9. #include <string>
  10. using namespace std;
  11. #if _MSC_VER > 1000
  12. #pragma once
  13. #endif // _MSC_VER > 1000
  14. //enum type describing actual pop3 state
  15. typedef enum {FIRST=0,USER,PASS,STAT,LIST,RETR,ENDRETR,DELE,GOON} STATE;
  16. #define S_GETNUMMSGS 5 //send when user can obtain number of messages
  17. #define S_GETSIZEMSGS 6 //as above, but size of messages
  18. #define S_ENDRETR 7 //send when done retrieving
  19. //simple struct that keeps message data, size, and retrieving size
  20. typedef struct 
  21. {
  22. CString text;
  23. int msgSize, retrSize;
  24. } MESSAGEPROP;
  25. class CPop3  : public CBase4Pop3
  26. {
  27. public:
  28. void WriteMsg(int i,CString name); //save msg to a file
  29. //gets the most important message fields: From, To, Date, Subject, Body
  30. //from entire message
  31. CString GetMsgStuff(int i); 
  32. //gets only message body
  33. CString GetMsgBody(int i);
  34. //want to delete messages after receiving?
  35. void DelAfterRead(BOOL del=FALSE);
  36. //gets only message subject
  37. CString GetMsgSubject(int i);
  38. //gets entire message
  39. CString GetMsg(int i);
  40. //gets number of received from server msgs
  41. int GetRetrMsgNum();
  42. //gest size of all msgs
  43. int GetSizeMsg();
  44. //gets number of msgs that are on server
  45. int GetNumMsg();
  46. //gets string error
  47. CString GetError();
  48. //closes and quits from pop3 server
  49. void Close();
  50. //sets username and password
  51. void SetProp(CString u, CString p);
  52. //gets last message recievied from server
  53. void GetLastMsg(CString &);
  54. //receiving event
  55. void OnReceive(int err);
  56. CPop3();
  57. virtual ~CPop3();
  58. private:
  59. //reads line from index in src and appends it to dst
  60. void ReadLn(int index,CString src, CString &dst);
  61. //main function
  62. void ParseMsg();
  63. CString lastMsg, error;
  64. STATE state;
  65. CString user, pass;
  66. int numMsg, sizeMsg, retrMsg;//分别表示信件数目、大小、已经收到的信件数目
  67. vector<MESSAGEPROP> msgs; //vector for message stuff
  68. BOOL delAfterRead;
  69. int delMsg;
  70. };
  71. #endif // !defined(AFX_POP31_H__1957A2DC_027A_43AF_82B6_789B397147F3__INCLUDED_)