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

📄 smtp.h

📁 根据SMTP邮件传输协议,编写的简单的发送邮件的测试程序!
💻 H
字号:
#ifndef _SMTP_H_INCLUDE_
#define _SMTP_H_INCLUDE_

#include "NetSocket.h"
#include <string>

using namespace std;

#define SMTP_PORT 25
#define RESPONSE_BUFFER_SIZE 1024

typedef unsigned int uint;

class MailMessage;

class Smtp
{
public:
	Smtp(string szSMTPServerName, uint nPort = SMTP_PORT);
	virtual ~Smtp();
public:
	void SetServerProperties( string sServerHostName, uint nPort = SMTP_PORT );
	string GetLastError();
	string GetMailerName();
	uint GetPort();
	bool Disconnect();
	bool Connect();
	virtual bool FormatMailMessage( MailMessage* msg );
	bool SendMessage( MailMessage* msg );
	string GetServerHostName();
	bool Authentication(string user = "",string password = "");

protected:
private:
	
	bool get_response( uint response_expected );
	bool transmit_message( MailMessage* msg );
	string prepare_body( MailMessage* msg );
	bool prepare_header( MailMessage* msg);
private:
	bool      m_bConnected;
	string    m_sSMTPServerHostName;	
	uint      m_nPort;
	NetSocket m_wsSMTPServer;
	string    m_sMailerName;
	string    m_szError;


protected:
	
	struct response_code
	{
		uint nResponse;	
		char* sMessage;	
	};

	enum eResponse
	{
		GENERIC_SUCCESS = 0,
		CONNECT_SUCCESS,
		DATA_SUCCESS,
		USERNAME_SUCCESS,
		LOGIN_SUCCESS,
		QUIT_SUCCESS,		
		LAST_RESPONSE
	};
	char response_buf[ RESPONSE_BUFFER_SIZE ];
	static response_code response_table[];
};
#endif

⌨️ 快捷键说明

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