SMTP Mailer базиран на T5L со отворен код

Ова прашање за да поттикнете многу практичен Форум за програмери на Diwen, наградуван со отворен извор, - smtp испраќач на пошта базиран на T5L, инженерите го користат паметниот екран T5L, преку модулот WiFi за пристап до серверот smtp, за да ја постигнат функцијата за испраќање е-пошта на администраторот, на екранот може да се внесе работата на екранот за внесување на адресата на е-пошта на примачот, насловот на е-поштата, содржината на е-поштата и други информации.Вреди да се напомене дека содржината на е-пошта поддржува и обичен текст, контроли за конфигурација, поставување боја на текстот и други методи за уредување.

1.Програмска архитектура

Паметниот екран T5L го контролира модулот WiFi за да комуницира со серверот smtp преку сериската порта 5 за да ја постигне функцијата за испраќање е-пошта.

ава (1)

2. Развој на интерфејс

Софтверот DGUS го комплетира развојот на функциите за прикажување и допир преку суперпозиција на слоеви.Корисниците треба само да ги вчитаат подготвените материјали за слика во софтверот DGUS и да ги постават функциите на екранот и допирот.

ава (2)

1. C51SнафтверDозначете

Сериската порта 5 за паметен екран T5L комуницира со модулот WiFi за да ја заврши интеракцијата со серверот smtp.Дел од главниот код е како што следува:

void uart5_init (u32 baud)

{

SCON3T = 0x80;

SCON3R = 0x80;

бауд = (u32) ((двојно) (FOSC/8.0)/бауд);

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

BODE3_DIV_L = бауд&0xff;

ES3R = 0;

ES3T = 0;

}

void u5_send_byte (u8 бајти)

{

SBUF3_TX = бајт;

while(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

неважечки u5_send_bytes (u8 *бајти, u16 len)

{

u16 i;

за(i=0;i

{

SBUF3_TX = бајти;

while(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

}

неважечки get_input (u8 * val,u8 len)

{

u8 i;

за(i=0;i

{

ако (val==0xff)

{

val = 0x00;

val[i+1] = 0x00;

враќање;

}

}

}

u8 esp8266_send_cmd(u8 *cmd,u8 *ack,u16 чекање,u8 clearBuffer)

{

u8 res=0;

rx_sta=0;

ако (потврди&&време на чекање&&cmd)

{

додека (--време на чекање)

{

sys_delay_ms(10);

if(rx_sta&0X8000)

{

if(esp8266_check_respond(ack))

пауза;

}

}

ако(време на чекање==0)рес=1;

if(clearBuffer==1)rx_sta=0;

}

врати рес;

}

typedef struct{

u8 cmd;

u8 е-пошта[20];

u8 име[20];

u8 наслов[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)

{

ако (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);

}друго ако(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);

}друго ако(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)

{

ако (btn_val2==1)

sys_write_vp(0x3060,"Ова е е-пошта од T5L!\0\0",30);

друго ако(btn_val2==2)

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

друго ако(btn_val2==3)

sys_write_vp(0x3060,"ЗадебеленЦрвено\0\0",30);

old_val = btn_val2;

}


Време на објавување: Октомври-31-2023 година