C++ 使用smtp协议发送邮件的简单实现

心血来潮,简单实现一个发送邮件的小程序,

首先实现一个简单的socket类

头文件

#ifndef _CSOCKET_H_
#define _CSOCKET_H_

#include 
#include 

#define BUFF_LEN 256

class CSocket
{
public:
   CSocket();
   ~CSocket();
   bool initialize(const char* ip, const int port);
   bool sendSocketMessage(const char* mesg);
   bool reviceSocketMessage();
   char* getReviceMessage();
private:
   int m_sockfd;
   char m_reciveBuff[BUFF_LEN];
   struct sockaddr_in m_add;
};

#endif //_CSOCKET_H_
类的实现
#include 
#include 
#include 

#include 

#include "CSocket.h"

using namespace std;

CSocket::CSocket()
 :m_sockfd(-1)
{
   
}

CSocket::~CSocket()
{
   if(-1 != m_sockfd)
   {
      close(m_sockfd);
   }
}

bool CSocket::initialize(const char* ip, const int port)
{
   m_sockfd = socket(AF_INET, SOCK_STREAM, 0);
   if(-1 == m_sockfd)
   {
      cerr<<__FUNCTION__<

main函数中通过smtp协议发送邮件

#include "CSocket.h"
#include 
using namespace std;

int main()
{
   CSocket sock;
   sock.initialize("220.181.12.15", 25);
   sock.reviceSocketMessage();
   cout<"); 
   sock.sendSocketMessage("\r\n"); 
   sock.reviceSocketMessage();
   cout<"); 
   sock.sendSocketMessage("\r\n"); 
   sock.reviceSocketMessage();
   cout<


运行结果输出

nap@nap-HP-431-Notebook-PC:~/smtp$ g++ main.cpp CSocket.cpp -o t -g
nap@nap-HP-431-Notebook-PC:~/smtp$ ./t
recv len65
220 163.com Anti-spam GT for Coremail System (163com[20141201])


recv len185
250-mail
250-PIPELINING
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-coremail 1Uxr2xKj7kG0xkI17xGrU7I0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UFHfoShUCa0xDrUUUUj
250-STARTTLS
250 8BITMIME


recv len18
334 xxxxxxx


recv len18
334 xxxxxx


recv len31
235 Authentication successful


*******************************
recv len13
250 Mail OK


recv len13
250 Mail OK


recv len37
354 End data with .


*********************
recv len74
250 Mail OK queued as smtp11,D8CowADXL+YQlxtXwXBzBA--.38230S2 1461425936


recv len9
221 Bye

邮箱使用的163邮箱

效果图

C++ 使用smtp协议发送邮件的简单实现_第1张图片

你可能感兴趣的:(C++ 使用smtp协议发送邮件的简单实现)