Correo SMTP de código abierto basado en T5L

Este número le permite impulsar un caso de código abierto muy práctico y premiado por el Diwen Developer Forum: remitente de correo SMTP basado en T5L. Los ingenieros utilizan la pantalla inteligente T5L y acceden al servidor SMTP a través del módulo WiFi para lograr la función de enviar correos electrónicos. para el administrador, la operación de la pantalla para ingresar la dirección de correo electrónico del destinatario, el título del correo electrónico, el contenido del correo electrónico y otra información se puede ingresar en la pantalla.Vale la pena señalar que el contenido del correo electrónico también admite texto sin formato, controles de configuración, configuración del color del texto y otros métodos de edición.

1.Arquitectura del programa

La pantalla inteligente T5L controla el módulo WiFi para interactuar con el servidor smtp a través del puerto serie 5 para lograr la función de envío de correo electrónico.

ava (1)

2.Desarrollo de interfaz

El software DGUS completa el desarrollo de las funciones de visualización y táctiles mediante la superposición de capas.Los usuarios sólo necesitan cargar los materiales fotográficos preparados en el software DGUS y configurar las funciones táctiles y de visualización.

ava (2)

1. C51SsoftwareDdiseño

El puerto serie 5 de la pantalla inteligente T5L se comunica con el módulo WiFi para completar la interacción con el servidor SMTP.Parte del código principal es el siguiente:

anular uart5_init (u32 baudios)

{

SCON3T = 0x80;

SCON3R = 0x80;

baudios = (u32)((doble)(FOSC/8.0)/baudios);

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

BODE3_DIV_L = baudios&0xff;

ES3R = 0;

ES3T = 0;

}

anular u5_send_byte(u8 byte)

{

SBUF3_TX = byte;

mientras(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

anular u5_send_bytes(u8 *bytes,u16 len)

{

u16 yo;

para(i=0;yo

{

SBUF3_TX = bytes;

mientras(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

}

void get_input(u8 * val,u8 len)

{

u8 yo;

para(i=0;yo

{

si(val==0xff)

{

valor = 0x00;

valor[i+1] = 0x00;

devolver;

}

}

}

u8 esp8266_send_cmd(u8 *cmd,u8 *ack,u16 tiempo de espera,u8 clearBuffer)

{

u8res=0;

rx_sta=0;

si(ack&&tiempo de espera&&cmd)

{

mientras (--tiempo de espera)

{

sys_delay_ms(10);

si(rx_sta&0X8000)

{

si(esp8266_check_respond(ack))

romper;

}

}

if(tiempo de espera==0)res=1;

if(clearBuffer==1)rx_sta=0;

}

devolver resolución;

}

estructura typedef {

u8 cmd;

correo electrónico u8[20];

nombre u8[20];

título u8[20];

mensaje u8 [60];

}INFO_EMAIL;

EMAIL_INFO información_correo electrónico;

u8 responde[80];

u8 nombre_wifi[30];

u8 wifi_passwd[30];

servidor u8 [30];

puerto u8[30];

nombre de usuario u8 [30];

u8 código_autenticación[30];

u8 rx_sta;

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

si(btn_val)

{

si(btn_val==1)

{

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

get_input(email_info.email,20);

get_input(email_info.título,20);

get_input(email_info.msg,60);

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

si(rx_sta)

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

}si no (btn_val==2)

{

sys_read_vp(0x3100,wifi_name,15);

sys_read_vp(0x3120,wifi_passwd,15);

get_input(nombre_wifi,30);

get_input(contraseña_wifi,30);

}si no (btn_val==3)

{

sys_read_vp(0x3200,servidor,15);

sys_read_vp(0x3220,puerto,15);

sys_read_vp(0x3240,nombre de usuario,15);

sys_read_vp(0x3260,auth_code,15);

get_input(servidor,30);

get_input(puerto,30);

get_input(nombre de usuario,30);

get_input(código_autenticación,30);

}

 

btn_val = 0;

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

}

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

si(btn_val2!=old_val)

{

si(btn_val2==1)

sys_write_vp(0x3060,"¡Este es un correo electrónico de T5L!\0\0",30);

de lo contrario si (btn_val2==2)

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

de lo contrario si (btn_val2==3)

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

valor_antiguo = btn_val2;

}


Hora de publicación: 31 de octubre de 2023