Open source SMTP Mailer basis T5L

Jeksa Agung bisa ngetokake iki kanggo sampeyan push banget praktis Diwen Developer Forum award-winning open source case - T5L basis smtp mail pangirim , engineers nggunakake T5L layar pinter , liwat modul WiFi kanggo ngakses smtp server , kanggo entuk fungsi ngirim email kanggo administrator , operasi layar kanggo ngetik alamat email panampa , judhul email, isi email lan informasi liyane bisa input ing layar.Wigati dicathet yen isi email uga ndhukung teks biasa, kontrol konfigurasi, nyetel warna teks lan cara panyuntingan liyane.

1. Arsitektur Program

T5L layar pinter kontrol modul WiFi kanggo sesambungan karo server smtp liwat port serial 5 kanggo entuk fungsi ngirim email.

ava (1)

2. Pangembangan Antarmuka

Piranti lunak DGUS ngrampungake pangembangan fungsi tampilan lan tutul liwat superposisi lapisan.Pangguna mung kudu ngemot bahan gambar sing disiapake menyang piranti lunak DGUS lan nyetel fungsi tampilan lan tutul.

ava (2)

1. C51Ssok-sokDtandha

T5L layar pinter port serial 5 komunikasi karo modul WiFi kanggo ngrampungake interaksi karo server smtp.Bagéyan saka kode utama kaya ing ngisor iki:

void uart5_init(u32 baud)

{

SCON3T = 0x80;

SCON3R = 0x80;

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

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

BODE3_DIV_L = baud&0xff;

ES3R = 0;

ES3T = 0;

}

batal u5_send_byte(u8 byte)

{

SBUF3_TX = byte;

nalika(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

void u5_send_bytes(u8 *byte,u16 len)

{

u16 aku;

kanggo (i=0;i

{

SBUF3_TX = bita;

nalika(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

}

void get_input(u8 * val,u8 len)

{

u8 aku;

kanggo (i=0;i

{

yen(val==0xff)

{

val = 0x00;

val[i+1] = 0x00;

bali;

}

}

}

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

{

u8 res=0;

rx_sta=0;

yen (ack&&waittime&&cmd)

{

nalika (--ngenteni)

{

sys_delay_ms(10);

yen(rx_sta&0X8000)

{

yen (esp8266_check_respond(ack))

putus;

}

}

if(waittime==0)res=1;

yen (clearBuffer == 1) rx_sta = 0;

}

bali res;

}

typedef struct {

u8 cmd;

u8 email[20];

jeneng u8[20];

judhul u8[20];

u8 pesen [60];

}EMAIL_INFO;

EMAIL_INFO email_info;

u8 nanggapi [80];

u8 wifi_name[30];

u8 wifi_passwd[30];

server u8[30];

port u8[30];

jeneng panganggo u8[30];

u8 auth_code[30];

u8 rx_sta;

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

yen (btn_val)

{

yen(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));

yen (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,server,15);

sys_read_vp(0x3220,port,15);

sys_read_vp(0x3240,username,15);

sys_read_vp(0x3260,auth_code,15);

get_input(server,30);

get_input(port,30);

get_input(jeneng panganggo,30);

get_input(kode_auth,30);

}

 

btn_val = 0;

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

}

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

yen(btn_val2!=old_val)

{

yen(btn_val2==1)

sys_write_vp(0x3060,"Iki email saka 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,"Kandelabang\0\0",30);

old_val = btn_val2;

}


Wektu kirim: Oct-31-2023