SMTP.h
上传用户:hsaozhenyu
上传日期:2007-01-03
资源大小:48k
文件大小:2k
源码类别:

Email客户端

开发平台:

Visual C++

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