資源描述:
《C++發(fā)送郵件和附件》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、C++發(fā)送郵件和附件頭文件[cpp]viewplaincopy1/***********************************************************************2*發(fā)送郵件模塊頭文件3*可以發(fā)送文本和附件(支持多個附件一起發(fā)送)4*************************************************************************/5#pragmaonce6structsMailInfo//郵件信息7{8char*m_pcUserName;//用戶登錄郵箱的名稱9char*m_pcUserP
2、assWord;//用戶登錄郵箱的密碼10char*m_pcSenderName;//用戶發(fā)送時顯示的名稱11char*m_pcSender;//發(fā)送者的郵箱地址12char*m_pcReceiver;//接收者的郵箱地址13char*m_pcTitle;//郵箱標題14char*m_pcBody;//郵件文本正文15char*m_pcIPAddr;//服務(wù)器的IP16char*m_pcIPName;//服務(wù)器的名稱(IP與名稱二選一,優(yōu)先取名稱)17sMailInfo(){memset(this,0,sizeof(sMailInfo));}18};19classCSendMail
3、20{21public:22CSendMail(void);23~CSendMail(void);2425public:26boolSendMail(sMailInfo&smailInfo);//發(fā)送郵件,需要在發(fā)送的時候初始化郵件信息27voidAddFilePath(char*pcFilePath);//添加附件的決定路徑到附件列表中28voidDeleteFilePath(char*pcFilePath);//刪除附件路徑,如果有的話29voidDeleteAllPath(void);//刪除全部附件的路徑3031protected:32voidGetFileName(cha
4、r*fileName,char*filePath);//從附件的路徑中獲取文件名稱33voidChar2Base64(char*pBuff64,char*pSrcBuff,intiLen);//把char類型轉(zhuǎn)換成Base64類型34boolCReateSocket(SOCKET&sock);//建立socket連接35boolLogon(SOCKET&sock);//登錄郵箱,主要進行發(fā)郵件前的準備工作36intGetFileData(char*FilePath);//由文件路徑獲取附件內(nèi)容12boolSendHead(SOCKET&sock);//發(fā)送郵件頭3boolSendT
5、extBody(SOCKET&sock);//發(fā)送郵件文本正文4boolSendFileBody(SOCKET&sock);//發(fā)送郵件附件5boolSendEnd(SOCKET&sock);//發(fā)送郵件結(jié)尾6protected:7CListm_pcFilePathList;//記錄附件路徑89charm_cSendBuff[4096];//發(fā)送緩沖區(qū)10charm_cReceiveBuff[1024];11char*m_pcFileBuff;//指向附件內(nèi)容12sMailInfom_sMailInfo;13};模塊實現(xiàn)文件[cpp]viewplainco
6、py14/************************************************************************15*發(fā)送郵件模塊16*可以發(fā)送文本和附件(支持多個附件一起發(fā)送)17*Date:2011-12-0118************************************************************************/19#include"StdAfx.h"20#include"SendMail.h"21#include"winsock2.h"22#pragmacomment(lib,"WSOCK
7、32")2324CSendMail::CSendMail(void)25{26m_pcFileBuff=NULL;27memset(m_cSendBuff,0,sizeof(m_cSendBuff));28memset(m_cReceiveBuff,0,sizeof(m_cReceiveBuff));29}303132CSendMail::~CSendMail(void)33{34DeleteAllPath();35}363738voidCSendMail::Char