📄 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 + -