SMTP Mailer berbasis T5L sumber terbuka

Masalah ini bagi Anda untuk mendorong kasus sumber terbuka pemenang penghargaan Forum Pengembang Diwen yang sangat praktis - pengirim email smtp berbasis T5L, para insinyur menggunakan layar pintar T5L, melalui modul WiFi untuk mengakses server smtp, untuk mencapai fungsi pengiriman email kepada administrator, pengoperasian layar untuk memasukkan alamat email penerima, judul email, konten email, dan informasi lainnya dapat dimasukkan di layar.Perlu dicatat bahwa konten email juga mendukung teks biasa, kontrol konfigurasi, pengaturan warna teks, dan metode pengeditan lainnya.

1.Arsitektur Program

Layar pintar T5L mengontrol modul WiFi untuk berinteraksi dengan server smtp melalui port serial 5 untuk mencapai fungsi pengiriman email.

tersedia (1)

2.Pengembangan Antarmuka

Perangkat lunak DGUS menyelesaikan pengembangan fungsi tampilan dan sentuhan melalui superposisi lapisan.Pengguna hanya perlu memuat materi gambar yang telah disiapkan ke dalam perangkat lunak DGUS dan mengatur fungsi tampilan dan sentuhan.

ada (2)

1.C51Sperangkat lunakDdesain

Port serial layar pintar T5L 5 berkomunikasi dengan modul WiFi untuk menyelesaikan interaksi dengan server smtp.Bagian dari kode utama adalah sebagai berikut:

batal uart5_init(u32 baud)

{

SCON3T = 0x80;

SCON3R = 0x80;

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

while(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

batal u5_send_bytes(u8 *byte,u16 len)

{

u16 saya;

untuk(saya=0;saya

{

SBUF3_TX = byte;

while(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

}

batal get_input(u8 * val,u8 len)

{

u8 saya;

untuk(saya=0;saya

{

jika(val==0xff)

{

val = 0x00;

val[i+1] = 0x00;

kembali;

}

}

}

u8 esp8266_send_cmd(u8 *cmd,u8 *ack,u16 waktu tunggu,u8 clearBuffer)

{

u8 res=0;

rx_sta=0;

if(ack&&waktu tunggu&&cmd)

{

sementara(--waktu tunggu)

{

sys_delay_ms(10);

jika(rx_sta&0X8000)

{

jika(esp8266_check_respond(ack))

merusak;

}

}

if(waktu tunggu==0)res=1;

jika(clearBuffer==1)rx_sta=0;

}

kembalikan res;

}

struktur typedef{

u8 cmd;

u8 email[20];

nama u8[20];

judul u8[20];

u8 pesan[60];

}EMAIL_INFO;

EMAIL_INFO email_info;

u8 merespons[80];

u8 nama_wifi[30];

u8 wifi_passwd[30];

server u8[30];

pelabuhan u8[30];

nama pengguna u8[30];

u8 auth_code[30];

u8 rx_sta;

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

jika(btn_val)

{

jika(btn_val==1)

{

sys_read_vp(0x3000,email_info.nama,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.nama,20);

get_input(email_info.email,20);

get_input(email_info.judul,20);

get_input(email_info.msg,60);

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

jika(rx_sta)

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

}lainnya jika(btn_val==2)

{

sys_read_vp(0x3100,nama_wifi,15);

sys_read_vp(0x3120,wifi_passwd,15);

get_input(nama_wifi,30);

get_input(wifi_passwd,30);

}lainnya jika(btn_val==3)

{

sys_read_vp(0x3200,server,15);

sys_read_vp(0x3220,pelabuhan,15);

sys_read_vp(0x3240,nama pengguna,15);

sys_read_vp(0x3260,auth_code,15);

get_input(server,30);

get_input(pelabuhan,30);

get_input(nama pengguna,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);

jika(btn_val2!=val_lama)

{

jika(btn_val2==1)

sys_write_vp(0x3060,"Ini email dari T5L!\0\0",30);

lain jika(btn_val2==2)

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

lain jika(btn_val2==3)

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

old_val = btn_val2;

}


Waktu posting: 31 Okt-2023