Mailer SMTP open source basé sur T5L

Ce problème vous permet de pousser un cas open source primé très pratique du Diwen Developer Forum - expéditeur de courrier SMTP basé sur T5L, les ingénieurs utilisent l'écran intelligent T5L, via le module WiFi pour accéder au serveur SMTP, pour réaliser la fonction d'envoi d'e-mails à l'administrateur, le fonctionnement de l'écran pour saisir l'adresse e-mail du destinataire, le titre de l'e-mail, le contenu de l'e-mail et d'autres informations peuvent être saisis sur l'écran.Il convient de noter que le contenu du courrier électronique prend également en charge le texte brut, les contrôles de configuration, la définition de la couleur du texte et d'autres méthodes d'édition.

1.Architecture du programme

L'écran intelligent T5L contrôle le module WiFi pour interagir avec le serveur SMTP via le port série 5 pour réaliser la fonction d'envoi d'e-mails.

ava (1)

2. Développement d'interfaces

Le logiciel DGUS complète le développement des fonctions d'affichage et tactiles par la superposition de couches.Les utilisateurs doivent uniquement charger les images préparées dans le logiciel DGUS et configurer les fonctions d'affichage et tactiles.

ava (2)

1.C51SlogicielDconception

Le port série 5 de l'écran intelligent T5L communique avec le module WiFi pour compléter l'interaction avec le serveur SMTP.Une partie du code principal est la suivante :

annuler uart5_init (u32 bauds)

{

SCON3T = 0x80 ;

SCON3R = 0x80 ;

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

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

BODE3_DIV_L = bauds&0xff;

ES3R = 0 ;

ES3T = 0 ;

}

void u5_send_byte (u8 octet)

{

SBUF3_TX = octet ;

pendant que(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

void u5_send_bytes(u8 *bytes,u16 len)

{

u16 je;

pour(i=0;i

{

SBUF3_TX = octets ;

pendant que(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

}

void get_input(u8 * val,u8 len)

{

u8 je;

pour(i=0;i

{

si(val==0xff)

{

val = 0x00 ;

val[i+1] = 0x00;

retour;

}

}

}

u8 esp8266_send_cmd(u8 *cmd,u8 *ack,u16 temps d'attente,u8 clearBuffer)

{

u8 res=0;

rx_sta=0;

si(ack&&temps d'attente&&cmd)

{

pendant (--temps d'attente)

{

sys_delay_ms(10);

si(rx_sta&0X8000)

{

si(esp8266_check_respond(ack))

casser;

}

}

if(temps d'attente==0)res=1;

si(clearBuffer==1)rx_sta=0;

}

retourner la résolution ;

}

structure typedef{

u8 cmd;

e-mail u8[20] ;

nom u8[20] ;

titre u8[20] ;

u8 message[60];

}EMAIL_INFO;

EMAIL_INFO email_info ;

u8 répond[80] ;

u8 nom_wifi[30];

u8 wifi_passwd[30];

serveur u8[30] ;

port u8[30] ;

nom d'utilisateur u8[30] ;

u8 code_auth[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.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));

si (rx_sta)

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

}sinon si(btn_val==2)

{

sys_read_vp (0x3100, nom_wifi, 15);

sys_read_vp(0x3120,wifi_passwd,15);

get_input(nom_wifi,30);

get_input(wifi_passwd,30);

}sinon si(btn_val==3)

{

sys_read_vp(0x3200,serveur,15);

sys_read_vp(0x3220,port,15);

sys_read_vp(0x3240,nom d'utilisateur,15);

sys_read_vp(0x3260,auth_code,15);

get_input(serveur,30);

get_input(port,30);

get_input(nom d'utilisateur,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);

si(btn_val2!=old_val)

{

si(btn_val2==1)

sys_write_vp(0x3060,"Ceci est un e-mail de T5L!\0\0",30);

sinon si(btn_val2==2)

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

sinon si(btn_val2==3)

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

vieux_val = btn_val2;

}


Heure de publication : 31 octobre 2023