在Internet上,Email是最流行的傳輸媒體。這篇文章包括兩個協議:. POP 3 協議: POP3協議(郵政傳輸協議)就是指從Email服務器接收信件。我已經提交了一個封裝POP3協議的類。該協議官方的描述你可查閱RFC1225。 SMTP協議: SMTP (簡單郵件傳輸協議) 指發送郵件到它的目的地。 有關SMTP 協議的細節你可參考RCF 821 .我最新地貢獻是封裝了SMTP協議。我不能完全實現 SMTP協議但你可用它在許多應用場合發送郵件。該類有若干方法,我選方法名同SMTP命令, 所以你很容易理解。 在該類中,我再一次使用了CSocket作為類成員,所以我能在線程中使用它. 下面是該類的編碼及注釋:
//////////////////////////////////////////////////////////////////////
// SMTP.h: interface for the CSMTP class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_SMTP_H__617F7E82_7F4D_11D1_88A0_00001C302581__INCLUDED_)
#define AFX_SMTP_H__617F7E82_7F4D_11D1_88A0_00001C302581__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#define CONNECTION_CHECK 0
#define HELLO_CHECK 1
#define MAIL_CHECK 2
#define RCPT_CHECK 3
#define DATA_START_CHECK 4
#define DATA_END_CHECK 5
#define QUIT_CHECK 6
#define DATA_CHECK 7
class CSMTP
{
public:
BOOL Mail(); //
CString GetErrorMessage();
BOOL Data(CString Subject, CString Body);
CString GetTo();
BOOL SetTo(CString to);
CString GetFrom();
void SetFrom(CString from);
BOOL Mail(CString from);
BOOL Disconnect();
CString GetHost();
void SetHost(CString Host);
BOOL Connect(CString Host, CString Me);
BOOL Connect();
CSMTP();
virtual ~CSMTP();
private:
CString GetError(CString Response);
CString m_ErrorMessage;
BOOL CheckResponse(int Type);
int m_NoOfTo;
CStringArray m_To;
CString m_From;
CSocket m_SMTPServer;
CString m_Host;
};
#endif // !defined(AFX_SMTP_H__617F7E82_7F4D_11D1_88A0_00001C302581__INCLUDED_)
//////////////////////////////////////////////////////////////////////////
// SMTP.cpp: implementation of the CSMTP class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "MailSend.h"
#include "SMTP.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif