欢迎来到天天文库
浏览记录
ID:9712244
大小:80.00 KB
页数:11页
时间:2018-05-06
《简单邮件传输协议smtp封装类》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、简单邮件传输协议SMTP封装类 在Inter上,Email是最流行的传输媒体。这篇文章包括两个协议:.POP3协议:POP3协议(邮政传输协议)就是指从Email服务器接收信件。我已经提交了一个封装POP3协议的类。该协议官方的描述你可查阅RFC1225。SMTP协议:SMTP(简单邮件传输协议)指发送邮件到它的目的地。有关SMTP协议的细节你可参考RCF821.我最新地贡献是封装了SMTP协议。我不能完全实现SMTP协议但你可用它在许多应用场合发送邮件。该类有若干方法,我选方法名同SMTP命令,所以你很容易理解。在该类中,我再一次使用了CSocket作为类成员,所以
2、我能在线程中使用它.下面是该类的编码及CK)==FALSE)returnFALSE; charbuf[512]; );m_SMTPServer.Send(buf,strlen(buf));if(CheckResponse(HELLO_CHECK)==FALSE)returnFALSE;elsereturnTRUE; returnTRUE;}}//SettingtheHostStringvoidCSMTP::SetHost(CStringHost){m_Host=Host;}//ReturingtheHostStringCStringCSMTP::GetHost(){re
3、turnm_Host;}//发送QUIT命令到SMTP服务器:BOOLCSMTP::Disconnect(){charbuf[256]; _SMTPServer.Send(buf,strlen(buf));if(CheckResponse(QUIT_CHECK)==FALSE)returnFALSE;elsereturnTRUE;}//发送MAIL命令到SMTP服务器:BOOLCSMTP::Mail(CStringfrom){charbuf[256]; :<%s>,(LPCSTR)from);m_SMTPServer.Send(buf,strlen(buf)
4、);if(CheckResponse(MAIL_CHECK)==FALSE)returnFALSE;elsereturnTRUE;}//SettingtheFromstringvoidCSMTP::SetFrom(CStringfrom){m_From=from;}//ReturingtheFromstringCStringCSMTP::GetFrom(){returnm_From;}//SettingtheTOstringBOOLCSMTP::SetTo(CStringto){charbuf[256];m_To.Add(to);//Savingvaleofto _SM
5、TPServer.Send(buf,strlen(buf));if(CheckResponse(RCPT_CHECK)==FALSE)returnFALSE;elsereturnTRUE; }//ReturingtheTOstringCStringCSMTP::GetTo(){if(m_To.GetSize()>=m_NoOfTo){m_NoOfTo++;returnm_To[m_NoOfTo-1];}elsereturn_T(NomoreToavailable);}//发送DATA命令到SMTP服务器:BOOLCSMTP::Data(CStringSubject
6、,CStringBody){charbuf[256]; _SMTPServer.Send(buf,strlen(buf));if(CheckResponse(DATA_CHECK)==FALSE)returnFALSE;else{_SMTPServer.Send(buf,strlen(buf)); _SMTPServer.Send(buf,strlen(buf)); _SMTPServer.Send(buf,strlen(buf)); returnTRUE;}}//本方法检查服务器的响应:BOOLCSMTP::CheckResponse(intType){charbuf
7、[1000];chartemp[3]; for(inti=0;i<512;i++)buf[i]='0'; //从服务器接收数据m_SMTPServer.Receive(buf,sizeof(buf));strncpy(temp,buf,3);inttemp2=atoi(temp);sp2!=220){m_ErrorMessage=GetError((LPCTSTR)buf);returnFALSE;}break; caseHELL上一页123下一页....,。O_CHECK:if(temp2!=250){m_Erro
此文档下载收益归作者所有