MailMessage.h
上传用户:weimei12
上传日期:2022-08-11
资源大小:185k
文件大小:4k
源码类别:

Email客户端

开发平台:

Visual C++

  1. #pragma once
  2. /********************************************************************
  3. created: 2008:10:24   11:16
  4. author: 李欣
  5. filename: c:MyProjectSimpleMailSimpleMailMailMessage.h
  6. classname:  CMailMessage
  7. purpose: Format a mail comply to RFC 822
  8. *********************************************************************/
  9. class CMailMessage  
  10. {
  11. public:
  12. CMailMessage();
  13. virtual ~CMailMessage();
  14. enum RECIPIENTS_TYPE {TO, CC, BCC}; 
  15. ///<summary>
  16. ///   Add a recipient's information
  17. ///</summary>
  18. BOOL AddRecipient(IN const CString& strEmailAddress, 
  19.   IN const CString& strFriendlyName = _T(""), 
  20.   IN RECIPIENTS_TYPE type = TO);
  21. ///<summary>
  22. ///   Get a recipient's information
  23. ///</summary>
  24. ///<param name = >
  25. ///   the index of the recipient in the arrary
  26. ///</param>
  27. BOOL GetRecipient(OUT CString& strEmailAddress, 
  28.   OUT CString& strFriendlyName, 
  29.   IN const int nIndex = 0, 
  30.   IN const RECIPIENTS_TYPE type = TO);
  31. ///<summary>
  32. ///   Get the count of recipients
  33. ///</summary>
  34. int GetNumRecipients(IN const RECIPIENTS_TYPE type = TO);
  35. ///<summary>
  36. ///   Add multiple recipients's information which is mixed together
  37. ///</summary>
  38. ///<param name = szRecipients>
  39. ///   the string containing the recipients
  40. ///</param>
  41. BOOL AddMultipleRecipients(IN LPCTSTR szRecipients, IN RECIPIENTS_TYPE type = TO);
  42. ///<summary>
  43. ///   get and set chars per line
  44. ///</summary>
  45. UINT GetCharsPerLine();
  46. void SetCharsPerLine(IN UINT nCharsPerLine);
  47. ///<summary>
  48. ///   set the related inforamtion
  49. ///</summary>
  50. void SetInfo(IN const CString& strFrom, IN const CString& strSubject, IN const CString& strBody, 
  51.  IN const CString& strUsername, IN const CString& strPassword);
  52. ///<summary>
  53. ///   get the mail's body
  54. ///</summary>
  55. CString GetMailBody();
  56. ///<summary>
  57. ///   get the mail's header
  58. ///</summary>
  59. CString GetMailHeader();
  60. ///<summary>
  61. ///   format the mail' header without any encoding mechanism
  62. ///</summary>
  63. void FormatMessage();
  64. protected:
  65. ///<summary>
  66. ///   add a line into the mail's header
  67. ///</summary>
  68. void AddHeaderLine(IN const CString& strHeaderLine);
  69. // When overriding prepare_header(), call base class 
  70. // version first, then add specialized 
  71. // add_header_line calls.
  72. // This ensures that the base class has a chance to
  73. // create the header lines it needs.
  74. ///<summary>
  75. ///   format the pure header 
  76. ///</summary>
  77. virtual void PrepareHeader();
  78. ///<summary>
  79. ///   do some jobs if necessary
  80. ///</summary>
  81. virtual void PrepareBody();
  82. ///<summary>
  83. ///   the sender address
  84. ///</summary>
  85. CString m_strFrom;
  86. ///<summary>
  87. ///   the letter's subject
  88. ///</summary>
  89. CString m_strSubject;
  90. ///<summary>
  91. ///   the user name
  92. ///</summary>
  93. CString m_strUsername;
  94. ///<summary>
  95. ///   the password
  96. ///</summary>
  97. CString m_strPassword;
  98. ///<summary>
  99. ///   the letter's content
  100. ///</summary>
  101. CString m_strBody;
  102. ///<summary>
  103. ///   the mail's header
  104. ///</summary>
  105. CString m_strHeader;
  106. CTime m_tDateTime;
  107. private:
  108. ///<summary>
  109. ///   chars per line
  110. ///</summary>
  111. UINT m_nCharsPerLine;
  112. class CRecipient
  113. {
  114. public:
  115. CString m_strEmailAddress;
  116. CString m_strFriendlyName;
  117. };
  118. ///<summary>
  119. ///   the primary recipients
  120. ///</summary>
  121. CArray <CRecipient, CRecipient&> m_Recipients;
  122. ///<summary>
  123. ///   the  secondary recipients 
  124. ///</summary>
  125. CArray <CRecipient, CRecipient&> m_CCRecipients;   
  126. ///<summary>
  127. ///   additional  recipients 
  128. ///</summary>
  129. CArray <CRecipient, CRecipient&> m_BCCRecipients;   
  130. };