Postues SMTP me burim të hapur T5L

Kjo çështje për ju që të shtyni një rast shumë praktik me burim të hapur fitues të çmimeve të Forumit të Zhvilluesve Diwen - dërgues i postës smtp me bazë T5L, inxhinierët përdorin ekranin inteligjent T5L, përmes modulit WiFi për të hyrë në serverin smtp, për të arritur funksionin e dërgimit të emaileve për administratorin, funksionimi i ekranit për të futur adresën e emailit të marrësit, titullin e postës elektronike, përmbajtjen e postës elektronike dhe informacione të tjera mund të futen në ekran.Vlen të përmendet se përmbajtja e postës elektronike mbështet gjithashtu tekstin e thjeshtë, kontrollet e konfigurimit, vendosjen e ngjyrës së tekstit dhe metoda të tjera redaktimi.

1.Arkitektura e programit

Ekrani inteligjent T5L kontrollon modulin WiFi për të bashkëvepruar me serverin smtp përmes portës serike 5 për të arritur funksionin e dërgimit të emailit.

ava (1)

2. Zhvillimi i ndërfaqes

Softueri DGUS kompleton zhvillimin e funksioneve të ekranit dhe prekjes përmes mbivendosjes së shtresave.Përdoruesit duhet vetëm të ngarkojnë materialet e përgatitura të figurës në programin DGUS dhe të konfigurojnë funksionet e ekranit dhe të prekjes.

ava (2)

1. C51SofwareDparaqesin

Porta serike e ekranit inteligjent T5L 5 komunikon me modulin WiFi për të përfunduar ndërveprimin me serverin smtp.Një pjesë e kodit kryesor është si më poshtë:

void uart5_init (u32 baud)

{

SCON3T = 0x80;

SCON3R = 0x80;

baud = (u32)((dyfish)(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 = bajt;

ndërsa(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

void u5_send_bytes (u8 *bajt, u16 lente)

{

u16 i;

për(i=0;i

{

SBUF3_TX = bajt;

ndërsa(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

}

void get_input (u8 * val,u8 len)

{

u8 i;

për(i=0;i

{

nëse (val==0xff)

{

val = 0x00;

val[i+1] = 0x00;

kthimi;

}

}

}

u8 esp8266_send_cmd(u8 *cmd,u8 *ack,u16 kohë pritjeje,u8 clearBuffer)

{

u8 res=0;

rx_sta=0;

nëse (pranoni&&koha e pritjes&&cmd)

{

ndërsa (--koha e pritjes)

{

sys_vonesa_ms(10);

if (rx_sta&0X8000)

{

if(esp8266_check_respond(ack))

pushim;

}

}

nëse(koha e pritjes==0)res=1;

if(clearBuffer==1)rx_sta=0;

}

kthim res;

}

typedef struct{

u8 cmd;

email u8[20];

emri u8[20];

titulli u8[20];

u8 msg[60];

}EMAIL_INFO;

EMAIL_INFO email_info;

u8 përgjigjen[80];

u8 emri_wifi[30];

u8 wifi_passwd[30];

server u8[30];

porta u8[30];

emri i përdoruesit u8[30];

u8 auth_code[30];

u8 rx_sta;

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

if (btn_val)

{

nëse (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_paketë((u8*)&email_info,madhësia e(EMAIL_INFO));

if (rx_sta)

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

}ndryshe nëse(btn_val==2)

{

sys_read_vp (0x3100, emri_wifi, 15);

sys_read_vp (0x3120,wifi_passwd,15);

get_input (emri_wifi,30);

get_input (wifi_passwd,30);

}ndryshe nëse(btn_val==3)

{

sys_read_vp (0x3200, server, 15);

sys_read_vp (0x3220,port,15);

sys_read_vp (0x3240, emri i përdoruesit, 15);

sys_read_vp (0x3260,auth_code,15);

get_input (server,30);

get_input (port, 30);

get_input (emri i përdoruesit, 30);

marr_input (kodi_auth,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)

{

nëse (btn_val2==1)

sys_write_vp(0x3060,"Ky është një email nga T5L!\0\0",30);

ndryshe nëse (btn_val2==2)

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

ndryshe nëse (btn_val2==3)

sys_write_vp(0x3060,"E guximshmeE kuqe\0\0",30);

vjetër_val = btn_val2;

}


Koha e postimit: Tetor-31-2023