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

📄 smtp.h

📁 在三星44B0的板子上实现基于GPRS的SMTP邮件发送
💻 H
字号:
#define TIMEOUT 80000
#define OK 	0
#define u8 unsigned char
#define enter "\n"
#define rURXH1		(*(volatile unsigned char *)0x1d04024)
#define rUTRSTAT1	(*(volatile unsigned *)0x1d04010)
//==============================================================
//the max datalength is 1000, with the endflag "\r\n"+"."+"\r\n",so buffsize is 1200
u8 base64_databuff[1200];
u8 temp_databuff[800];
u8 date_str[30];
//u8 mail_text[1000]; 
//==============================================================
u8 const base64table[]=

{'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P', 
'Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f', 
'g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v', 
'w','x','y','z','0','1','2','3','4','5','6','7','8','9','+','/','='};



//==============================================================
/*
command series talbe
-------------------------------------------------------------------
COMMAND        	  SERIES						COMMAND        	  SERIES

  EHLO     			1 			 		AUTH LOGIN			2
  SEND USERNAME	       3			 		SEND PASSWORD		4
  SEND MAIL FORM		5	  		 		SEND MAILTO			6
  SEND DATA			7			 		SEND MAILHEAD		8
  SEND MAILBODY		9			  		SEND QUIT			10 
  SEND ATE			11
  */
  
#define 			ehlo_command_no		1
#define 			auth_login_no		2
#define 			send_username_no	3
#define 			send_password_no	4
#define 			send_mailfrom_no	5
#define 			send_mailto_no		6
#define 			send_data_no		7
#define 			send_mailhead_no	8
#define 			send_mailbody_no	9
#define 			send_quit_no		10
#define				send_ate			11
#define			    command_connect		12
#define             r_send_endflag      13
//------------------------------------------------------------------

//==============================================================
/*
after send smtp command ,corresponding ackdata will be recieved 
Notice: there are far more ackdatas defined by SMTP  than bellow ,for simplify our program,so i just
picked up several ackdatas!

as list bellow
command   	 	      ack_data         	      		command          		ack_data

   EHLO				250			  		AUTH LOGIN        		334 VXNlcm5hbWU6
  SEND USERNAME	      	334 UGFzc3dvcmQ6	SEND PASSWORD		235
  SEND MAIL FORM		250					SEND MAILTO			250
  SEND DATA			354			 		SEND MAILHEAD		(no ack data)
  SEND MAILBODY		250			  		SEND QUIT			221 */
  
#define 			str250				"250"	
#define 			str334name			"334 VXNlcm5hbWU6"
#define 			str334password		"334 UGFzc3dvcmQ6"
#define 			str235				"235"
#define 			str354				"354"
#define 			str221				"221"
#define				strOK				"OK"
#define 			str220				"220"


//==============================================================
//basic command &  field of mime mail  and some parameters are optional
u8  * mail_field[]=
{	
/*0*/		"EHLO ",										
/*1*/ 		"AUTH LOGIN",								
/*2*/ 		"MAIL FROM: <",
/*3*/ 		"RCPT TO: <",
/*4*/ 		"DATA",
/*5*/   	"Date:",
/*6*/ 		"From:",
/*7*/ 		"To:",
/*8*/ 		"Subject: ",
/*9*/ 		"X-Mailer:Bywenmen",
/*10*/		"Message-ID:<",
/*11*/ 		"MIME-Version: 1.0",
/*12*/ 		"Content-Type: multipart/mixed;",
/*13*/ 		"  boundary=\"=====_NextPart_001_0033_01C8BC39_=====\"",
/*14*/		"This is a multi-part message in MIME format.",
/*15*/ 		"--=====_NextPart_001_0033_01C8BC39_=====",
/*16*/		"Content-Type:application/octet-stream;",
/*17*/		"     name=",
/*18*/		"Content-Transfer-Encoding: base64",
/*19*/		"Content-Disposition: attachment;",
/*20*/		"	  filename=",
/*21*/ 		"QUIT",
};

//==============================================================
//mail message

unsigned char smtp_server_name[20];
unsigned char smtp_server_ip[20];
unsigned char smtp_port[5];
unsigned char sender_name[20];
unsigned char sender_mail_counter[30];
unsigned char sender_mail_password[16];
unsigned char reciever_name[20];
unsigned char reciever_mail_counter[30];
unsigned char subject_name[20];
unsigned char filename[20]; 
//==============================================================
struct mail_message_str
{
	unsigned char *smtp_server_name;          
	unsigned char *smtp_server_ip;
	unsigned char *smtp_port;
	unsigned char *sender_name;	
	unsigned char *sender_mail_counter;
	unsigned char *sender_mail_password;
	unsigned char *reciever_name;	
	unsigned char *reciever_mail_counter;
	unsigned char *subject_name;
	unsigned char *filename;
	int ready;	
}mail_message;


⌨️ 快捷键说明

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