СМТП Маилер са отвореним кодом Т5Л

Ово издање за вас да покренете веома практичан Дивен Девелопер Форум награђивани случај отвореног кода - смтп пошиљалац поште заснован на Т5Л, инжењери користе Т5Л паметни екран, преко ВиФи модула за приступ смтп серверу, како би постигли функцију слања е-поште администратору, рад на екрану за унос адресе е-поште примаоца, наслова е-поште, садржаја е-поште и других информација може се унети на екран.Вреди напоменути да садржај е-поште такође подржава обичан текст, контроле конфигурације, подешавање боје текста и друге методе уређивања.

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

Т5Л паметни екран контролише ВиФи модул за интеракцију са смтп сервером преко серијског порта 5 како би се постигла функција слања е-поште.

ава (1)

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

ДГУС софтвер довршава развој функција приказа и додира кроз суперпозицију слојева.Корисници само треба да учитају припремљене сликовне материјале у ДГУС софтвер и подесе функције екрана и додира.

ава (2)

1. Ц51SофвареDесигн

Т5Л паметни екран серијски порт 5 комуницира са ВиФи модулом да би завршио интеракцију са смтп сервером.Део главног кода је следећи:

воид уарт5_инит(у32 бауд)

{

СЦОН3Т = 0к80;

СЦОН3Р = 0к80;

бауд = (у32)((доубле)(ФОСЦ/8.0)/бауд);

БОДЕ3_ДИВ_Х = (бауд>>8)&0кфф;

БОДЕ3_ДИВ_Л = бауд&0кфф;

ЕС3Р = 0;

ЕС3Т = 0;

}

воид у5_сенд_бите(у8 бите)

{

СБУФ3_ТКС = бајт;

вхиле(!(СЦОН3Т&0к01));

СЦОН3Т &= 0кфе;

}

воид у5_сенд_битес(у8 *битес,у16 лен)

{

у16 и;

фор(и=0;и

{

СБУФ3_ТКС = бајтови;

вхиле(!(СЦОН3Т&0к01));

СЦОН3Т &= 0кфе;

}

}

воид гет_инпут(у8 * вал,у8 лен)

{

у8 и;

фор(и=0;и

{

иф(вал==0кфф)

{

вал = 0к00;

вал[и+1] = 0к00;

повратак;

}

}

}

у8 есп8266_сенд_цмд(у8 *цмд,у8 *ацк,у16 време чекања,у8 цлеарБуффер)

{

у8 рес=0;

рк_ста=0;

иф(ацк&&време чекања&&цмд)

{

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

{

сис_делаи_мс(10);

иф(рк_ста&0Кс8000)

{

иф(есп8266_цхецк_респонд(ацк))

пауза;

}

}

иф(време чекања==0)рес=1;

иф(цлеарБуффер==1)рк_ста=0;

}

ретурн рес;

}

типедеф струцт{

у8 цмд;

у8 емаил[20];

у8 име[20];

у8 титле[20];

у8 мсг[60];

}ЕМАИЛ_ИНФО;

ЕМАИЛ_ИНФО емаил_инфо;

у8 одговори[80];

у8 име_вифи[30];

у8 вифи_пассвд[30];

у8 сервер[30];

у8 порт[30];

у8 корисничко име[30];

у8 аутх_цоде[30];

у8 рк_ста;

сис_реад_вп(0к1000,(у8*)&бтн_вал,1);

иф(бтн_вал)

{

иф(бтн_вал==1)

{

сис_реад_вп(0к3000,емаил_инфо.наме,10);

сис_реад_вп(0к3020,емаил_инфо.емаил,10);

сис_реад_вп(0к3040,емаил_инфо.титле,10);

сис_реад_вп(0к3060,емаил_инфо.мсг,30);

гет_инпут(емаил_инфо.наме,20);

гет_инпут(емаил_инфо.емаил,20);

гет_инпут(емаил_инфо.титле,20);

гет_инпут(емаил_инфо.мсг,60);

сенд_пацкет((у8*)&емаил_инфо,сизеоф(ЕМАИЛ_ИНФО));

иф(рк_ста)

сенд_маил(емаил_инфо.емаил,емаил_инфо.титле,емаил_инфо.мсг);

}елсе иф(бтн_вал==2)

{

сис_реад_вп(0к3100,вифи_наме,15);

сис_реад_вп(0к3120,вифи_пассвд,15);

гет_инпут(вифи_наме,30);

гет_инпут(вифи_пассвд,30);

}елсе иф(бтн_вал==3)

{

сис_реад_вп(0к3200,сервер,15);

сис_реад_вп(0к3220,порт,15);

сис_реад_вп(0к3240,корисничко име,15);

сис_реад_вп(0к3260,аутх_цоде,15);

гет_инпут(сервер,30);

гет_инпут(порт,30);

гет_инпут(корисничко име,30);

гет_инпут(аутх_цоде,30);

}

 

бтн_вал = 0;

сис_врите_вп(0к1000,(у8*)&бтн_вал,1);

}

сис_реад_вп(0к2050,(у8*)&бтн_вал2,1);

иф(бтн_вал2!=олд_вал)

{

иф(бтн_вал2==1)

сис_врите_вп(0к3060,"Ово је емаил од Т5Л!\0\0",30);

иначе иф(бтн_вал2==2)

сис_врите_вп(0к3060," \0\0",30);

иначе иф(бтн_вал2==3)

сис_врите_вп(0к3060,"ОдважанЦрвени\0\0",30);

олд_вал = бтн_вал2;

}


Време поста: 31.10.2023