⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smtp.h

📁 一个简单的群发软件源代码
💻 H
字号:
// smtp.h
#ifndef smtp_h
#define smtp_h

#include "afxsock.h"
#include "MailMessage.h"

#define SMTP_PORT 25
#define RESPONSE_BUFFER_SIZE 1024

class CSMTP
{
	public:
		CSMTP(LPCSTR szSMTPServerName, UINT nPort = SMTP_PORT); // 构造函数
		virtual ~CSMTP(); // 析构函数

		CString GetLastError();	// 得到错误信息
		UINT GetPort(); // 得到SMTP服务器端口号
		BOOL Disconnect(); // 断开与服务器的连接
		BOOL Connect();	// 与服务器连接
		virtual BOOL FormatMailMessage(CMailMessage* msg); // 格式化邮件
		BOOL SendMessage(CMailMessage* msg); // 发送邮件信息
		CString GetServerHostName(); // 得到SMTP服务器名
		void SetServerProperties(LPCSTR szSMTPServerName, UINT nPort); // 设置服务器的属性
		void Cancel();
			
	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
		};

	BOOL	SendAuthentication();

		TCHAR* response_buf;
		static response_code response_table[];
	int		SendCmd(char *Command);

	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; // 将于SMTP服务器建立链接得套接字对象
};

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -