smtpconnection2.cpp

来自「Overview DSN-Less Connection dBASE Excel」· C++ 代码 · 共 40 行

CPP
40
字号
/*
	Copyright(C) Nishant Sivakumar (nish@voidnish.com)
	Please maintain this copyright notice if you distribute this file
	in original or modified form.
*/

#include "StdAfx.h"
#include "smtpconnection2.h"

BOOL CSMTPConnection2::Connect(LPCTSTR lpszHostDomain, 
							   DWORD dwTimeout /*= 10000*/) throw()
{
	CSimpleArray<CString> arrSMTP;
	_GetSMTPList(lpszHostDomain, arrSMTP);
	for(int i=0; i<arrSMTP.GetSize(); i++)
	{
		if(CSMTPConnection::Connect(arrSMTP[i], dwTimeout) == TRUE)
			return TRUE;
	}
	return FALSE;
}

void CSMTPConnection2::_GetSMTPList(LPCTSTR lpszHostDomain, 
								   CSimpleArray<CString>& arrSMTP)
{
	PDNS_RECORD pRec = NULL;
	if(DnsQuery(lpszHostDomain, DNS_TYPE_MX, DNS_QUERY_STANDARD,
		NULL, &pRec, NULL) == ERROR_SUCCESS)
	{
		PDNS_RECORD pRecOrig = pRec;
		while(pRec)
		{
			if(pRec->wType == DNS_TYPE_MX)
				arrSMTP.Add(pRec->Data.MX.pNameExchange);
			pRec = pRec->pNext;
		}
		DnsRecordListFree(pRecOrig,DnsFreeRecordList);
	}
}

⌨️ 快捷键说明

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