SMTP.h
上传用户:yh_company
上传日期:2013-04-25
资源大小:19k
文件大小:2k
源码类别:

Email客户端

开发平台:

Visual C++

  1. // SMTP.h: interface for the CSMTP class.
  2. // Copyright (c) 1998, Wes Clyburn
  3. //
  4. // Adapted to modified CMailMessage class
  5. // Copyright (c) 1998 Michael Krebs
  6. //////////////////////////////////////////////////////////////////////
  7. #if !defined(AFX_SMTP_H__55DE48CB_BEA4_11D1_870E_444553540000__INCLUDED_)
  8. #define AFX_SMTP_H__55DE48CB_BEA4_11D1_870E_444553540000__INCLUDED_
  9. #if _MSC_VER >= 1000
  10. #pragma once
  11. #endif // _MSC_VER >= 1000
  12. #include <afxsock.h>
  13. #include "MailMessage.h"
  14. #define SMTP_PORT 25 // Standard port for SMTP servers
  15. #define RESPONSE_BUFFER_SIZE 1024
  16. class CSMTP  
  17. {
  18. public:
  19. CSMTP( LPCTSTR szSMTPServerName, UINT nPort = SMTP_PORT );
  20. virtual ~CSMTP();
  21. void SetServerProperties( LPCTSTR sServerHostName, UINT nPort = SMTP_PORT );
  22. CString GetLastError();
  23. CString GetMailerName();
  24. UINT GetPort();
  25. BOOL Disconnect();
  26. BOOL Connect();
  27. virtual BOOL FormatMailMessage( CMailMessage* msg );
  28. BOOL SendMessage( CMailMessage* msg );
  29. CString GetServerHostName();
  30. private:
  31. BOOL get_response( UINT response_expected );
  32. BOOL transmit_message( CMailMessage* msg );
  33. CString m_sError;
  34. BOOL m_bConnected;
  35. UINT m_nPort;
  36. CString m_sMailerName;
  37. CString m_sSMTPServerHostName;
  38. CSocket m_wsSMTPServer;
  39. protected:
  40. //
  41. // Helper Code
  42. //
  43. struct response_code
  44. {
  45. UINT nResponse; // Response we're looking for
  46. TCHAR* sMessage; // Error message if we don't get it
  47. };
  48. enum eResponse
  49. {
  50. GENERIC_SUCCESS = 0,
  51. CONNECT_SUCCESS,
  52. DATA_SUCCESS,
  53. QUIT_SUCCESS,
  54. // Include any others here
  55. LAST_RESPONSE // Do not add entries past this one
  56. };
  57. TCHAR response_buf[ RESPONSE_BUFFER_SIZE ];
  58. static response_code response_table[];
  59. };
  60. #endif // !defined(AFX_SMTP_H__55DE48CB_BEA4_11D1_870E_444553540000__INCLUDED_)