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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ssmtp.c

?? ssmt郵件服務(wù)器armlinux下的郵件開發(fā)
?? C
?? 第 1 頁 / 共 3 頁
字號:
//	sends MAIL SMTP command/////////////////////////////////////////////////////////////////////////int ssmtp_mail(SMTP_Client_Info *smtpinfo, char *status_code){	int i;	char buf[MAXDATASIZE];	strcpy(buf, "MAIL FROM:<");	strcat(buf, smtpinfo->fromaddr);	strcat(buf, ">\r\n");		if( ssmtp_send(smtpinfo, buf) < 0 )		return -1;		usleep(READ_DELAY);	memset(buf, 0, MAXDATASIZE);	if( ssmtp_read(smtpinfo, buf) < 0 )		return -1;			i = strlen(status_code);	if( !strncmp(status_code, buf, i) )	{		// status code match, return 0		dbgmsg("%s", ssmtp_stored_message);		return 0;	}	else	{		// status code not match, ssmtp state failed		ssmtp_failed(SMTP_FAILED);		return -1;	}}///////////////////////////////////////////////////////////////////////// Function ssmtp_rcpt////	sends RCPT SMTP command/////////////////////////////////////////////////////////////////////////int ssmtp_rcpt(SMTP_Client_Info *smtpinfo, char *status_code){	int i;	char buf[MAXDATASIZE];	strcpy(buf, "RCPT TO:<");	strcat(buf, smtpinfo->toaddr);	strcat(buf, ">\r\n");		if( ssmtp_send(smtpinfo, buf) < 0 )		return -1;		usleep(READ_DELAY);	memset(buf, 0, MAXDATASIZE);	if( ssmtp_read(smtpinfo, buf) < 0 )		return -1;			i = strlen(status_code);	if( !strncmp(status_code, buf, i) )	{		// status code match, return 0		dbgmsg("%s", ssmtp_stored_message);		return 0;	}	else	{		// status code not match, ssmtp state failed		ssmtp_failed(SMTP_FAILED);		return -1;	}}///////////////////////////////////////////////////////////////////////// Function ssmtp_data////	sends DATA SMTP command/////////////////////////////////////////////////////////////////////////int ssmtp_data(SMTP_Client_Info *smtpinfo, char *status_code){	int i;	char buf[MAXDATASIZE];	strcpy(buf, "DATA\r\n");	if( ssmtp_send(smtpinfo, buf) < 0 )		return -1;		usleep(READ_DELAY);	memset(buf, 0, MAXDATASIZE);	if( ssmtp_read(smtpinfo, buf) < 0 )		return -1;	i = strlen(status_code);	if( !strncmp(status_code, buf, i) )	{		// status code match, return 0		dbgmsg("%s", ssmtp_stored_message);		return 0;	}	else	{		// status code not match, ssmtp state failed		ssmtp_failed(SMTP_FAILED);		return -1;	}}///////////////////////////////////////////////////////////////////////// Function ssmtp_data////	send whole content including attachment/////////////////////////////////////////////////////////////////////////int ssmtp_content(SMTP_Client_Info *smtpinfo, char *status_code){	FILE *infile, *fp;	int i;	char buf[MAXDATASIZE];	unsigned char raw;	char *headers=0;	char *ctype=0;	long maxsize=0;	#if 1    strcpy(buf, "dummy");#else	strcpy(buf, "Date: ");	strncat(buf, mail_date, strlen(mail_date)-1); // must strip \n and then plus \r\n	strcat(buf, "\r\n");	strcat(buf, "From: ");	strcat(buf, smtpinfo->fromaddr);	strcat(buf, "\r\n");	strcat(buf, "To: ");	strcat(buf, smtpinfo->toaddr);	strcat(buf, "\r\n");#endif	if( sendall(smtpinfo->sockfd, buf, strlen(buf)) < 0 )		return -1;	// open file and send	if( (infile = fopen(attachment, "r")) == NULL )	{		perror("ssmtp: open");		ssmtp_failed(PIC_OPEN_ERR);		return -1;	}	fseek(infile, 0, SEEK_SET); // seek to beginning	// MIME encode and output to temporary file TMPFILE	encode(infile, (FILE *)0, attachment, mail_body, mail_subject, headers,	       maxsize, ctype, mimetmpfile);	usleep(500); // wait file creation	// open MIME file	if( (fp = fopen(mimetmpfile, "r")) == NULL )	{		perror("ssmtp: open");		ssmtp_failed(TMP_OPEN_ERR);		return -1;	}	rewind(fp);	// send out the MIME file	while( feof(fp)==0 )	{		if( fread(&raw, 1, 1, fp) < 0 )		{			ssmtp_failed(FILE_READ_ERR);			// delete tmporary file			fclose(fp);			fclose(infile);			unlink(mimetmpfile);			return -1;		}		if( sendall(smtpinfo->sockfd, &raw, 1) < 0)		{			fclose(fp);			fclose(infile);			unlink(mimetmpfile);			return -1;		}	}	// end of mail	strcpy(buf, "\r\n.\r\n");	if( sendall(smtpinfo->sockfd, buf, strlen(buf)) < 0 )	{		fclose(fp);		fclose(infile);		unlink(mimetmpfile);		return -1;	}	usleep(READ_DELAY);	memset(buf, 0, MAXDATASIZE);	if( ssmtp_read(smtpinfo, buf) < 0 )	{		fclose(fp);		fclose(infile);		unlink(mimetmpfile);		return -1;	}	i = strlen(status_code);	if( !strncmp(status_code, buf, i) )	{		// status code match, return 0		fclose(fp);		fclose(infile);		unlink(mimetmpfile);		dbgmsg("%s", ssmtp_stored_message);		return 0;	}	else	{		// status code not match, ssmtp state failed		ssmtp_failed(SMTP_FAILED);		fclose(fp);		fclose(infile);		unlink(mimetmpfile);		return -1;	}}///////////////////////////////////////////////////////////////////////// Function to64frombits////	brief Raw bytes in quasi-big-endian order to//	base 64 string (NUL-terminated)////	param[out]	out		A pointer to a char to hold the converted string//	param[in]	in		String to convert//	param[in]	inlen	Length of the string to be converted///////////////////////////////////////////////////////////////////////void to64frombits(unsigned char *out, const unsigned char *in, int inlen){	for (; inlen >= 3; inlen -= 3)	{		*out++ = base64digits[in[0] >> 2];		*out++ = base64digits[((in[0] << 4) & 0x30) | (in[1] >> 4)];		*out++ = base64digits[((in[1] << 2) & 0x3c) | (in[2] >> 6)];		*out++ = base64digits[in[2] & 0x3f];		in += 3;	}	if (inlen > 0)	{		unsigned char fragment;		*out++ = base64digits[in[0] >> 2];		fragment = (in[0] << 4) & 0x30;		if (inlen > 1)			fragment |= in[1] >> 4;		*out++ = base64digits[fragment];		*out++ = (inlen < 2) ? '=' : base64digits[(in[1] << 2) & 0x3c];		*out++ = '=';	}		*out = '\0';}///////////////////////////////////////////////////////////////////////// Function ssmtp_auth////	sends AUTH command to server/////////////////////////////////////////////////////////////////////////int ssmtp_auth(SMTP_Client_Info *smtpinfo){	char local_in_buf[128];	char local_tmp_buf[128];	char local_out_buf[MAXDATASIZE];	int len;	int i;			memset(local_tmp_buf,0,sizeof(local_tmp_buf));	// login authentication	if( smtpinfo->auth_mech==SASL_LOGIN )	{		to64frombits((unsigned char*)local_tmp_buf,		             (const unsigned char *)smtpinfo->auth_user,		             strlen(smtpinfo->auth_user));		//asprintf(&local_out_buf,"AUTH LOGIN %s\r\n",local_tmp_buf);		strcpy(local_out_buf, "AUTH LOGIN ");		strcat(local_out_buf, local_tmp_buf);		strcat(local_out_buf, "\r\n");		if( ssmtp_send(smtpinfo, local_out_buf) < 0 )			return -1;				free(local_out_buf);				usleep(READ_DELAY);		if( ssmtp_read(smtpinfo, local_in_buf) < 0 )			return -1;		dbgmsg("%s", ssmtp_stored_message);					if( strncmp(local_in_buf, "3", 1) != 0 )		{			ssmtp_failed(SMTP_FAILED);			return -1;		}				memset(local_tmp_buf,0,sizeof(local_tmp_buf));		to64frombits((unsigned char *)local_tmp_buf,		             (const unsigned char *)smtpinfo->auth_pass,		             strlen(smtpinfo->auth_pass));		//asprintf(&local_out_buf,"%s\r\n",local_tmp_buf);		strcpy(local_out_buf, local_tmp_buf);		strcat(local_out_buf, "\r\n");		if( ssmtp_send(smtpinfo, local_out_buf) < 0 )			return -1;				free(local_out_buf);		usleep(READ_DELAY);		if ( ssmtp_read(smtpinfo, local_in_buf) < 0 )			return -1;		dbgmsg("%s", ssmtp_stored_message);				if( strncmp(local_in_buf, "2", 1) != 0 )		{			ssmtp_failed(SMTP_FAILED);			return -1;		}	}		// plain authentication	if( smtpinfo->auth_mech==SASL_PLAIN )	{		//asprintf(&local_out_buf,"^%s^%s",smtpinfo->auth_user,smtpinfo->auth_pass);		strcpy(local_out_buf, "^");		strcat(local_out_buf, smtpinfo->auth_user);		strcat(local_out_buf, "^");		strcat(local_out_buf, smtpinfo->auth_pass);				len = strlen(local_out_buf);		for ( i = len-1 ; i >= 0 ; i-- )		{			if (local_out_buf[i]=='^')			{				local_out_buf[i]='\0';			}		}		to64frombits((unsigned char *)local_tmp_buf,(const unsigned char *)local_out_buf,len);		free(local_out_buf);		//asprintf(&local_out_buf,"AUTH PLAIN %s\r\n",local_tmp_buf);		strcpy(local_out_buf, "AUTH PLAIN ");		strcat(local_out_buf, local_tmp_buf);		strcat(local_out_buf, "\r\n");		if(ssmtp_send(smtpinfo, local_out_buf) < 0 )			return -1;				free(local_out_buf);		usleep(READ_DELAY);		if( ssmtp_read(smtpinfo, local_in_buf) < 0 )			return -1;				dbgmsg("%s", ssmtp_stored_message);				if( strncmp(local_in_buf, "2", 1) != 0 )		{			ssmtp_failed(SMTP_FAILED);			return -1;		}	}			return 0;}///////////////////////////////////////////////////////////////////////// Function ssmtp_quit////	sends QUIT command to server//	never mind what server responses/////////////////////////////////////////////////////////////////////////int ssmtp_quit(SMTP_Client_Info *smtpinfo){	int i;	char buf[MAXDATASIZE];		strcpy(buf, "QUIT\r\n");		if( ssmtp_send(smtpinfo, buf) < 0 )		return -1;		usleep(READ_DELAY);	memset(buf, 0, MAXDATASIZE);	if( ssmtp_read(smtpinfo, buf) < 0 )		return -1;			dbgmsg("%s", ssmtp_stored_message);		return 0;}///////////////////////////////////////////////////////////////////////// Function main///////////////////////////////////////////////////////////////////////int main(int argc, char *argv[]){	SMTP_Client_Info *smtpinfo;	// init smtpinfo structure	smtpinfo = NULL;	smtpinfo = malloc(sizeof(SMTP_Client_Info));	if(!smtpinfo)		ssmtp_failed(MEM_ALLOC_FAIL);		// init smtpinfo parameters	ssmtp_init(smtpinfo, argc, argv);	// connect to server	ssmtp_connect(smtpinfo);		// get server response	ssmtp_ready(smtpinfo, SERVICE_READY);		// say helo to server	if( ssmtp_ehlo(smtpinfo, REPLY_OKAY) < 0 )	{		// EHLO failed, try HELO instead		if( ssmtp_helo(smtpinfo, REPLY_OKAY) < 0 )			ssmtp_quit(smtpinfo);	}	else	{		// authentication		if( strlen(smtpinfo->auth_user)>0 && strlen(smtpinfo->auth_pass)>0 )		{			if( ssmtp_auth(smtpinfo) < 0 )			{				// auth failed, try HELO instead				if( ssmtp_helo(smtpinfo, REPLY_OKAY) < 0 )					ssmtp_quit(smtpinfo);			}		}	}	// mail from	ssmtp_mail(smtpinfo, REPLY_OKAY);	// mail to	ssmtp_rcpt(smtpinfo, "2");	// data	ssmtp_data(smtpinfo, "3");	// send content	ssmtp_content(smtpinfo, "2");		// send quit	ssmtp_quit(smtpinfo);	close(smtpinfo->sockfd);	free(smtpinfo);	return 0;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国v欧美v亚洲v日本v| 成人avav影音| 日韩精品欧美成人高清一区二区| 亚洲人成人一区二区在线观看 | 欧美丰满高潮xxxx喷水动漫| 欧美性色综合网| 欧美在线免费观看亚洲| 91香蕉视频mp4| av在线这里只有精品| 成人av资源站| 91小宝寻花一区二区三区| 色婷婷精品久久二区二区蜜臂av | 成人黄色综合网站| 成人在线综合网| thepron国产精品| av动漫一区二区| 一本大道久久a久久综合| 成人aa视频在线观看| 色综合天天综合色综合av| 成人午夜免费电影| 91免费看视频| 欧美视频日韩视频在线观看| 欧美色图片你懂的| 在线一区二区观看| 欧洲亚洲精品在线| 91久久国产最好的精华液| 欧美视频一区二区三区四区| 91精品久久久久久久久99蜜臂| 欧美顶级少妇做爰| 欧美放荡的少妇| 日韩欧美黄色影院| 日韩欧美中文一区二区| 国产欧美精品一区| 一区二区三区四区视频精品免费| 亚洲图片自拍偷拍| 精品一区二区三区香蕉蜜桃| 国产精品一品视频| www.激情成人| 欧美日本一区二区在线观看| 欧洲国内综合视频| 精品国产91乱码一区二区三区| 欧美一区二区三区四区视频| 欧美精品三级日韩久久| 久久日韩粉嫩一区二区三区| 久久久国产精品麻豆| 亚洲精品国产无套在线观| 午夜精品久久久久久久蜜桃app| 精品一区二区在线观看| 99re热这里只有精品免费视频| 欧美偷拍一区二区| 欧美日韩一区二区三区在线| 日韩一区二区在线看片| 中文字幕av免费专区久久| 国产精品欧美久久久久无广告 | 亚洲成人第一页| 国产乱码字幕精品高清av| 99精品欧美一区二区三区综合在线| 色综合久久天天综合网| 欧美mv和日韩mv国产网站| 一区二区三区免费看视频| 精品影视av免费| 成人黄色免费短视频| 欧美性一二三区| 国产欧美一区二区三区网站| 亚洲电影在线播放| 国产精品一品视频| 91精品国产日韩91久久久久久| 国产精品久久二区二区| 日韩高清电影一区| 成人国产精品免费网站| 5858s免费视频成人| 国产精品蜜臀在线观看| 日韩电影在线免费看| 91老师国产黑色丝袜在线| 欧美精品一区二区三区一线天视频 | 欧美色综合久久| 国产精品乱人伦| 麻豆91在线看| 欧美肥妇毛茸茸| 亚洲综合激情网| 99视频一区二区| 久久久99精品免费观看不卡| 日韩av在线播放中文字幕| 91九色最新地址| 最好看的中文字幕久久| 国产成人免费xxxxxxxx| 精品剧情在线观看| 日韩不卡免费视频| 欧美精选午夜久久久乱码6080| 亚洲欧美日韩国产一区二区三区| 国产精品一区在线观看你懂的| 717成人午夜免费福利电影| 亚洲午夜久久久久久久久电影网| yourporn久久国产精品| 国产日韩欧美精品综合| 国产一区二区三区最好精华液| 4438成人网| 天堂久久一区二区三区| 欧美午夜电影网| 亚洲综合999| 精品视频在线免费| 亚洲国产精品一区二区www| 色婷婷综合久久久久中文 | 亚洲另类春色校园小说| 99精品一区二区| 亚洲色图在线看| 97久久超碰国产精品| 国产精品成人免费精品自在线观看 | 亚洲精品日韩专区silk| 9色porny自拍视频一区二区| 国产精品萝li| 91在线你懂得| 一区二区三区免费观看| 欧美性色综合网| 日日嗨av一区二区三区四区| 欧美区在线观看| 日本vs亚洲vs韩国一区三区二区| 91精品国产91久久久久久最新毛片| 日韩电影在线免费看| 日韩欧美高清在线| 美美哒免费高清在线观看视频一区二区 | 亚洲影视在线播放| 欧美日韩激情在线| 日本欧美大码aⅴ在线播放| 欧美一卡2卡3卡4卡| 精品亚洲欧美一区| 国产亚洲成年网址在线观看| 国产成人在线影院| 日韩毛片高清在线播放| 在线观看视频一区二区| 亚洲成人av资源| 欧美va亚洲va国产综合| 国产精品一区二区免费不卡| 亚洲欧洲日本在线| 欧美亚洲综合另类| 美女网站色91| 国产精品美女久久福利网站| 欧美性生活影院| 久久se精品一区二区| 欧美激情一区二区三区全黄| 一本色道综合亚洲| 天天色天天操综合| 久久影院视频免费| 91色婷婷久久久久合中文| 午夜一区二区三区视频| 2024国产精品视频| 色婷婷国产精品综合在线观看| 天堂影院一区二区| 国产片一区二区三区| 色哦色哦哦色天天综合| 免费精品99久久国产综合精品| 国产三级精品三级| 色av成人天堂桃色av| 久久精品国产亚洲高清剧情介绍 | 久久午夜免费电影| 91黄色激情网站| 久久精品国产第一区二区三区| 中文字幕一区日韩精品欧美| 欧美日韩另类国产亚洲欧美一级| 国产一区二区女| 亚洲综合免费观看高清完整版 | 国产毛片精品国产一区二区三区| 日韩一区中文字幕| 日韩小视频在线观看专区| av在线免费不卡| 精品一区中文字幕| 亚洲成人自拍网| 国产精品久久久久一区二区三区共| 欧美色涩在线第一页| 波多野结衣中文字幕一区二区三区| 日韩电影一二三区| 亚洲色图另类专区| 久久精品亚洲一区二区三区浴池 | 精品欧美乱码久久久久久 | 国产精品久久久久久久裸模| 欧美亚洲一区二区在线观看| 国产 欧美在线| 精品一区二区在线免费观看| 亚洲一二三四在线观看| ●精品国产综合乱码久久久久| 337p粉嫩大胆噜噜噜噜噜91av| 欧美三区在线观看| 成+人+亚洲+综合天堂| 久久66热偷产精品| 婷婷久久综合九色综合绿巨人| 国产精品久久久久久久岛一牛影视| 欧美成人三级在线| 欧美日韩和欧美的一区二区| 国产一区三区三区| 日精品一区二区| 亚洲成av人片一区二区梦乃| 1000精品久久久久久久久| 国产亚洲女人久久久久毛片| 精品国一区二区三区| 制服丝袜一区二区三区| 欧美日韩国产a| 在线观看中文字幕不卡| 色综合久久中文字幕综合网| 91在线精品一区二区三区| www.久久久久久久久|