Açıq mənbə T5L əsaslı SMTP Mailer

Bu məsələ sizin üçün çox praktik Diwen Developer Forum mükafatlı açıq mənbə işi - T5L əsaslı smtp poçt göndəricisi, mühəndislər e-poçt göndərmə funksiyasına nail olmaq üçün smtp serverinə daxil olmaq üçün WiFi modulu vasitəsilə T5L smart ekranından istifadə edirlər. idarəçiyə , ekranın işləməsi alıcının e-poçt ünvanını , e-poçt başlığını, e-poçt məzmununu və digər məlumatları daxil etmək üçün ekrana daxil edilə bilər.Qeyd etmək lazımdır ki, e-poçt məzmunu həm də düz mətni, konfiqurasiya nəzarətlərini, mətn rəngini təyin etməyi və digər redaktə üsullarını dəstəkləyir.

1.Proqram Memarlığı

T5L smart ekranı e-poçt göndərmə funksiyasına nail olmaq üçün serial port 5 vasitəsilə smtp serveri ilə qarşılıqlı əlaqə yaratmaq üçün WiFi modulunu idarə edir.

ava (1)

2. İnterfeys inkişafı

DGUS proqramı təbəqələrin superpozisiyası vasitəsilə ekran və toxunma funksiyalarının inkişafını tamamlayır.İstifadəçilər yalnız hazırlanmış şəkil materiallarını DGUS proqramına yükləməli və ekran və toxunma funksiyalarını qurmalıdırlar.

ava (2)

1. C51Stez-tezDesign

T5L smart ekran serial port 5 smtp serveri ilə qarşılıqlı əlaqəni tamamlamaq üçün WiFi modulu ilə əlaqə qurur.Əsas kodun bir hissəsi aşağıdakı kimidir:

void uart5_init(u32 baud)

{

SCON3T = 0x80;

SCON3R = 0x80;

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

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

BODE3_DIV_L = ötürmə&0xff;

ES3R = 0;

ES3T = 0;

}

u5_göndərmə_baytını ləğv edin (u8 bayt)

{

SBUF3_TX = bayt;

while(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

boş u5_send_bytes(u8 *bayt,u16 len)

{

u16 i;

üçün(i=0;i

{

SBUF3_TX = bayt;

while(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

}

void get_input(u8 * val,u8 len)

{

u8 i;

üçün(i=0;i

{

əgər(val==0xff)

{

val = 0x00;

val[i+1] = 0x00;

qayıtmaq;

}

}

}

u8 esp8266_send_cmd(u8 *cmd,u8 *ack,u16 gözləmə vaxtı,u8 clearBuffer)

{

u8 res=0;

rx_sta=0;

əgər (ack&&waittime&&cmd)

{

while(--gözləmə vaxtı)

{

sys_delay_ms(10);

əgər(rx_sta&0X8000)

{

əgər(esp8266_check_respond(ack))

fasilə;

}

}

if(gözləmə vaxtı==0)res=1;

if(clearBuffer==1)rx_sta=0;

}

geri qayıtmaq;

}

typedef strukturu{

u8 cmd;

u8 e-poçtu[20];

u8 adı[20];

u8 başlığı[20];

u8 msg[60];

}EMAIL_INFO;

EMAIL_INFO email_info;

u8 cavab[80];

u8 wifi_name[30];

u8 wifi_passwd[30];

u8 server[30];

u8 port[30];

u8 istifadəçi adı[30];

u8 auth_code[30];

u8 rx_sta;

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

əgər(btn_val)

{

əgər(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));

əgər(rx_sta)

göndərmə_poçtu(email_info.email,email_info.title,email_info.msg);

}else if(btn_val==2)

{

sys_read_vp(0x3100,wifi_adı,15);

sys_read_vp(0x3120,wifi_passwd,15);

get_input(wifi_adı,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, istifadəçi adı, 15);

sys_read_vp(0x3260,auth_code,15);

get_input(server,30);

get_input(port,30);

get_input(istifadəçi adı,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)

{

əgər(btn_val2==1)

sys_write_vp(0x3060,"Bu, T5L-dən e-poçtdur!\0\0",30);

başqa əgər (btn_val2==2)

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

başqa əgər (btn_val2==3)

sys_write_vp(0x3060,"CəsarətliQırmızı\0\0",30);

köhnə_val = btn_val2;

}


Göndərmə vaxtı: 31 oktyabr 2023-cü il