編寫SMTP協(xié)議郵箱發(fā)信(QQ郵箱為例)
[導(dǎo)讀]語言:C/C++??
編程軟件:VS2015??
字符集:ASCII碼??
主要使用:Winsock套接字庫說明:這里拿QQ郵箱做為例子,其他126、163郵箱也一樣可以,大同小異。首先你要知道QQ提
語言:C/C++?? 編程軟件:VS2015?? 字符集:ASCII碼?? 主要使用:Winsock套接字庫
說明:這里拿QQ郵箱做為例子,其他126、163郵箱也一樣可以,大同小異。
首先你要知道QQ提供的用于管理郵箱SMTP服務(wù)器監(jiān)聽端口和服務(wù)器域名或IP地址。
一、如何查詢QQ的SMTP服務(wù)器:
QQ提供的SMTP服務(wù)器
從上面可以知道:
SMTP服務(wù)器:smtp.qq.com
監(jiān)聽端口號:465、587.(使用25端口也行)
二、打開QQ郵箱的SMTP/POP3服務(wù):
打開QQ郵箱-->設(shè)置-->賬戶-->找到以下選項:
POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務(wù)
點擊開啟“POP3/SMTP服務(wù)”選項.
這時,QQ會提供一個字符串密鑰(如:QKBE?KQQW UDVC BJAB),這個密鑰充當著登錄密碼的作用.
如果你獲取密鑰后,修改了QQ密碼,那么密鑰會無效,那就要重新獲取.
如果你早已打開了該SMTP服務(wù),但沒有密鑰,關(guān)閉重新打開服務(wù).
得到密鑰:QKBE?KQQW UDVC BJAB ?實際使用密鑰時:qkbekqqwudvcbjab
三、上傳QQ賬戶和密鑰時,要轉(zhuǎn)換成“Base64編碼”再上傳給QQ的SMTP服務(wù)器:
使用以下的EncodeBase64函數(shù)即可將它們轉(zhuǎn)換成Base64編碼:
struct?Base64Date6???? {???? ????unsigned?int?d4?:?6;?????? ????unsigned?int?d3?:?6;???? ????unsigned?int?d2?:?6;???? ????unsigned?int?d1?:?6;???? };
//轉(zhuǎn)換為Base64編碼函數(shù)?? void?EncodeBase64(char?*dbuf,?char?*buf128,?int?len)??? {???//參數(shù)1:接收新Base64編碼的緩沖區(qū)???參數(shù)2:要轉(zhuǎn)換的字符串緩沖區(qū)??參數(shù)3:要轉(zhuǎn)換的字符串長度 ????struct?Base64Date6?*ddd?=?NULL;?? ????int???????????i?=?0;?? ????char??????????buf[256]?=?{?0?};?? ????char??????????*tmp?=?NULL;?? ????char??????????cc?=?'