דואר SMTP מבוסס קוד פתוח T5L

נושא זה בשבילך לדחוף פורום Developer Diwen פרקטי מאוד עטור פרסים מקרה קוד פתוח - שולח smtp דואר מבוסס T5L, המהנדסים משתמשים במסך החכם T5L, דרך מודול ה-WiFi כדי לגשת לשרת smtp, כדי להשיג את הפונקציה של שליחת מיילים למנהל המערכת, ניתן להזין על המסך את פעולת המסך להזנת כתובת הדוא"ל של הנמען, כותרת הדוא"ל, תוכן האימייל ומידע אחר.ראוי לציין שתוכן האימייל תומך גם בטקסט רגיל, בקרות תצורה, הגדרת צבע טקסט ושיטות עריכה אחרות.

1. ארכיטקטורת תוכנית

מסך חכם T5L שולט במודול ה-WiFi לאינטראקציה עם שרת smtp דרך יציאה טורית 5 כדי להשיג את הפונקציה של שליחת דואר אלקטרוני.

אווה (1)

2. פיתוח ממשק

תוכנת DGUS משלימה את הפיתוח של פונקציות תצוגה ומגע באמצעות סופרפוזיציה של שכבות.משתמשים צריכים רק לטעון את חומרי התמונה המוכנים לתוכנת DGUS ולהגדיר את פונקציות התצוגה והמגע.

אווה (2)

1. C51Sתוכנות תכונהDesign

יציאה טורית מסך חכם T5L מתקשרת עם מודול WiFi כדי להשלים את האינטראקציה עם שרת smtp.חלק מהקוד הראשי הוא כדלקמן:

void uart5_init(u32 baud)

{

SCON3T = 0x80;

SCON3R = 0x80;

baud = (u32)((double)(FOSC/8.0)/baud);

BODE3_DIV_H = (baud>>8)&0xff;

BODE3_DIV_L = baud&0xff;

ES3R = 0;

ES3T = 0;

}

void u5_send_byte(u8 byte)

{

SBUF3_TX = byte;

while(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

void u5_send_bytes(u8 *bytes,u16 len)

{

u16 i;

for(i=0;i

{

SBUF3_TX = בתים;

while(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

}

void get_input(u8 * val,u8 len)

{

u8 i;

for(i=0;i

{

if(val==0xff)

{

val = 0x00;

val[i+1] = 0x00;

לַחֲזוֹר;

}

}

}

u8 esp8266_send_cmd(u8 *cmd,u8 *ack,u16 waittime,u8 clearBuffer)

{

u8 res=0;

rx_sta=0;

if(ack&&waittime&&cmd)

{

בזמן (--זמן המתנה)

{

sys_delay_ms(10);

if(rx_sta&0X8000)

{

if(esp8266_check_respond(ack))

לשבור;

}

}

if(waittime==0)res=1;

if(clearBuffer==1)rx_sta=0;

}

החזר מיל;

}

typedef struct{

u8 cmd;

דוא"ל u8[20];

שם u8[20];

u8 title[20];

u8 msg[60];

}EMAIL_INFO;

EMAIL_INFO email_info;

u8 תגובה[80];

u8 wifi_name[30];

u8 wifi_passwd[30];

שרת u8[30];

יציאת u8[30];

שם משתמש u8[30];

u8 auth_code[30];

u8 rx_sta;

sys_read_vp(0x1000,(u8*)&btn_val,1);

if(btn_val)

{

if(btn_val==1)

{

sys_read_vp(0x3000,email_info.name,10);

sys_read_vp(0x3020,email_info.email,10);

sys_read_vp(0x3040,email_info.title,10);

sys_read_vp(0x3060,email_info.msg,30);

get_input(email_info.name,20);

get_input(email_info.email,20);

get_input(email_info.title,20);

get_input(email_info.msg,60);

send_packet((u8*)&email_info,sizeof(EMAIL_INFO));

if(rx_sta)

send_mail(email_info.email,email_info.title,email_info.msg);

}else if(btn_val==2)

{

sys_read_vp(0x3100,wifi_name,15);

sys_read_vp(0x3120,wifi_passwd,15);

get_input(wifi_name,30);

get_input(wifi_passwd,30);

}else if(btn_val==3)

{

sys_read_vp(0x3200,שרת,15);

sys_read_vp(0x3220,port,15);

sys_read_vp(0x3240, שם משתמש,15);

sys_read_vp(0x3260,auth_code,15);

get_input(שרת,30);

get_input(port,30);

get_input(שם משתמש,30);

get_input(auth_code,30);

}

 

btn_val = 0;

sys_write_vp(0x1000,(u8*)&btn_val,1);

}

sys_read_vp(0x2050,(u8*)&btn_val2,1);

if(btn_val2!=old_val)

{

if(btn_val2==1)

sys_write_vp(0x3060,"זהו אימייל מ-T5L!\0\0",30);

else if(btn_val2==2)

sys_write_vp(0x3060," \0\0",30);

else if(btn_val2==3)

sys_write_vp(0x3060,"נוֹעָזאָדוֹם\0\0",30);

old_val = btn_val2;

}


זמן פרסום: 31 באוקטובר 2023