www.pudn.com > 通讯录管理程序源代码(c).rar > SMTP.h


// SMTP.h: interface for the CSMTP class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_SMTP_H__35206EC9_0725_11D5_B854_0050BAD0985B__INCLUDED_) 
#define AFX_SMTP_H__35206EC9_0725_11D5_B854_0050BAD0985B__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
#include  
#include "MailMessage.h" 
 
#define SMTP_PORT 25	               //标准SMTP服务器端口号	 
#define RESPONSE_BUFFER_SIZE 1024      //用于接受响应信息的缓冲区大小 
//类:连接服务器、发送数据、接受响应、断开连接等 
class CSMTP   
{ 
public: 
	CSMTP( LPCTSTR szSMTPServerName, UINT nPort = SMTP_PORT ); 
	virtual ~CSMTP(); 
 
	void SetServerProperties( LPCTSTR szSMTPServerName, UINT nPort = SMTP_PORT ); 
	CString GetLastError(); 
	UINT GetPort(); 
	BOOL Disconnect(); 
	BOOL Connect(); 
	virtual BOOL FormatMailMessage( CMailMessage* msg ); 
	BOOL SendMessage( CMailMessage* msg ); 
	CString GetServerHostName(); 
 
private: 
	BOOL get_response( UINT response_expected ); 
	CString cook_body( CMailMessage* msg ); 
 
	CString m_sError;        //关于错误信息 
	BOOL m_bConnected;       //连接判断 
	UINT m_nPort;            //SMTP服务器端口号 
	CString m_sSMTPServerHostName;   //SMTP服务器的主机名 
	CSocket m_wsSMTPServer;     //套接字对象 
 
protected: 
	virtual BOOL transmit_message( CMailMessage* msg ); 
 
	struct response_code 
	{ 
		UINT nResponse;	 
		TCHAR* sMessage; 
	}; 
//枚举了可能出现的错误 
	enum eResponse 
	{ 
		GENERIC_SUCCESS = 0, 
		CONNECT_SUCCESS, 
		DATA_SUCCESS, 
		QUIT_SUCCESS, 
		LAST_RESPONSE 
	}; 
	TCHAR *response_buf; 
	static response_code response_table[]; 
}; 
 
#endif // !defined(AFX_SMTP_H__35206EC9_0725_11D5_B854_0050BAD0985B__INCLUDED_)