vc下基于SMTP协议的发送电子邮件代码
#include<afxsock.h>
#include"MailMessage.h"
//SMTP服务器标准端口号
#define SMTP_PORT 25
//定义接受缓冲区大小
#define RESPONSE_BUFFER_SIZE 1024
Class CSMTP
{
Public:
CSMTP(LPCTSTR szSMTPServerName,UINT nPort=SMTP_PORT);
virtual~CSMTP();
//记录服务器属性的接口
void SetServerProperties(LPCTSTR szSMTPServerName,UINT nPort=SMTP_PORT ); CString GetLastError();
UINT GetPort();
//与服务器的联系函数
BOOL Disconnect();
BOOL Connect();
//解释收到的回应信息
Virtual BOOL FormatMailMessage(CMailMessage*msg);
BOOL SendMessage(CMailMessage*msg);
CString GetServerHostName();
//连接是阻塞式的,因此要提供取消通信的方法
void Cancel();
private:
//处理获得的回应信息
BOOL get_response(UINT response_expected);
//处理邮件正文
CString cook_body(CMailMessage*msg);
CString m_sError;
BOOL m_bConnected;
UINT m_nPort;
CString m_sSMTPServerHostName();
//与SMTP服务器通信的套接字
CSocket m_wsSMTPServer;
Protected:
//发送邮件消息
virtual BOOLtransmit_message(CMailMessage*msg);