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

📄 sendemail.h

📁 Smtp mail sender with attachments.
💻 H
字号:
#ifndef _SENDEMAIL_H_#define _SENDEMAIL_H_#include <string>#include <vector>#include <fstream>#include <list>#include <time.h>#include <ctype.h>#include <sys/types.h>#include <sys/socket.h>#include <netdb.h>#include <netinet/in.h>#include <arpa/inet.h>#include <sstream> typedef std::ostringstream StrngStream;class SendEmail {public:	enum {SMTP_OUTGOING_MAIL_PORT = 25, BASE64_MAXLINE  = 76, MAX_LINE_SIZE = 4094};	enum LoginMethod{LOGIN_AUTH_METHOD, LOGIN_PLAIN_METHOD};	SendEmail(		std::string EmailSenderHostName, 		std::string Auth_UserID, 		std::string Auth_Password = "", 		std::string Sender = "jara@mail.nnov.ru", 		std::string ReplyToAddr = "", 		LoginMethod LoginMethod_ = LOGIN_AUTH_METHOD, //		LoginMethod LoginMethod_ = LOGIN_PLAIN_METHOD,		std::string X_Mailer = "X-Mailer: test\r\n", 		std::string X_Phone = "",		std::string EmailAddrSeperator = ", ");	~SendEmail();	std::string operator()(		const std::string	&To, 		const std::string	&Subject,		const std::string	&Body,		const std::list<std::string>	*CC_List = 0, 		const std::list<std::string>	*BCC_List = 0, 		const std::list<std::string>	*AttachmentPath_List = 0,		const std::string *MessageID = 0);	std::string Mail(		const std::list<std::string> &To, 		const std::string	&Subject,		const std::string	&Body,		const std::list<std::string>	*CC_List = 0, 		const std::list<std::string>	*BCC_List = 0, 		const std::list<std::string>	*AttachmentPath_List = 0,		const std::string *MessageID = 0);	std::string Mail1(		const std::string	&To, 		const std::string	&Subject,		const std::string	&Body,		const std::list<std::string>	*CC_List = 0, 		const std::list<std::string>	*BCC_List = 0, 		const std::list<std::string>	*AttachmentPath_List = 0,		const std::string *MessageID = 0);	void DoLogin(void);	static const char* NO_ERRORS;	const std::vector<std::string> &RecentErrorLog;private:	std::list<std::string>* StrLstToELst(const std::list<std::string> *Src, std::list<std::string> &Dest);	enum{TO_BLOCK, CC_BLOCK, BCC_BLOCK};	std::string Mail(		const std::string	&RCPT_To, 		const std::list<std::string>	&To, 		const std::string	&Subject,		const std::string	&Body,		const std::list<std::string> &CC_List, 		const std::list<std::string>	*AttachmentPath_List,		const std::string &MessageID);	std::vector<std::string> m_RecentErrorLog;	LoginMethod m_LoginMethod;	std::string m_EmailSenderHostName;	std::string m_Sender;	std::string m_ReplyToAddr;	std::string m_Auth_UserID;	std::string m_Auth_Password;	std::string m_EmailAddrSeperator;	int m_socket;	bool m_InitiateGood;	char m_EmailBuffer[MAX_LINE_SIZE + 1];	const std::string m_X_Mailer;	const std::string m_X_Phone;	int m_UniqueContentID;	bool m_UseReplyToAddr_ForMailFrom;	std::string ReturnValueFromReceive;	static const char* m_base64Table;	static const char* CHK_220_REPLY;	static const char* CHK_221_REPLY;	static const char* CHK_235_REPLY;	static const char* CHK_250_REPLY;	static const char* CHK_334_REPLY;	static const char* CHK_354_REPLY;	static const char* EMAIL_ADDR_DIV_CHR;	static const std::string CRLF_SET;	bool SendStr(const StrngStream &Src);	bool SendStr(const char* Buffer);	bool VerifyReply(const char* szReplyString);	bool Receive(char* szBuffer, int nLenMax, int nFlags, const char* szReplyString);	bool Send(const char *szBuffer, size_t nLen);	bool Encode64File(const std::string &FileName);	std::string Encode64String(const std::string &Src);	char Encode64Byte(unsigned char uc);	static std::string EmailAddrFormat(const std::string &Src);	const char* Encode64(const std::vector<unsigned char> & vBytes, std::string *Dest = NULL, bool EndWithCR = false);};bool SendEmailSimple(const char* HostName, const char* UserID, const char* To, const char* Subject, const char* Body, const char* UserPassword = NULL, const char* FileName_Attach = NULL);#endif

⌨️ 快捷键说明

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