SMTP.H
上传用户:sanlisteel
上传日期:2008-06-19
资源大小:98k
文件大小:2k
源码类别:

数据库系统

开发平台:

C/C++

  1. // SMTP.h: interface for the CSMTP class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_SMTP_H__35206EC9_0725_11D5_B854_0050BAD0985B__INCLUDED_)
  5. #define AFX_SMTP_H__35206EC9_0725_11D5_B854_0050BAD0985B__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                //标准SMTP服务器端口号
  12. #define RESPONSE_BUFFER_SIZE 1024      //用于接受响应信息的缓冲区大小
  13. //类:连接服务器、发送数据、接受响应、断开连接等
  14. class CSMTP  
  15. {
  16. public:
  17. CSMTP( LPCTSTR szSMTPServerName, UINT nPort = SMTP_PORT );
  18. virtual ~CSMTP();
  19. void SetServerProperties( LPCTSTR szSMTPServerName, UINT nPort = SMTP_PORT );
  20. CString GetLastError();
  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. CString cook_body( CMailMessage* msg );
  30. CString m_sError;        //关于错误信息
  31. BOOL m_bConnected;       //连接判断
  32. UINT m_nPort;            //SMTP服务器端口号
  33. CString m_sSMTPServerHostName;   //SMTP服务器的主机名
  34. CSocket m_wsSMTPServer;     //套接字对象
  35. protected:
  36. virtual BOOL transmit_message( CMailMessage* msg );
  37. struct response_code
  38. {
  39. UINT nResponse;
  40. TCHAR* sMessage;
  41. };
  42. //枚举了可能出现的错误
  43. enum eResponse
  44. {
  45. GENERIC_SUCCESS = 0,
  46. CONNECT_SUCCESS,
  47. DATA_SUCCESS,
  48. QUIT_SUCCESS,
  49. LAST_RESPONSE
  50. };
  51. TCHAR *response_buf;
  52. static response_code response_table[];
  53. };
  54. #endif // !defined(AFX_SMTP_H__35206EC9_0725_11D5_B854_0050BAD0985B__INCLUDED_)