برنامج SMTP Mailer مفتوح المصدر ومعتمد على T5L

هذه المشكلة لك لدفع حالة مفتوحة المصدر حائزة على جائزة Diwen Developer Forum - مرسل بريد SMTP قائم على T5L، يستخدم المهندسون شاشة T5L الذكية، من خلال وحدة WiFi للوصول إلى خادم SMTP، لتحقيق وظيفة إرسال رسائل البريد الإلكتروني إلى المسؤول، يمكن إدخال تشغيل الشاشة لإدخال عنوان البريد الإلكتروني للمستلم وعنوان البريد الإلكتروني ومحتوى البريد الإلكتروني والمعلومات الأخرى على الشاشة.تجدر الإشارة إلى أن محتوى البريد الإلكتروني يدعم أيضًا النص العادي وعناصر التحكم في التكوين وتحديد لون النص وطرق التحرير الأخرى.

1. معمارية البرنامج

تتحكم شاشة T5L الذكية في وحدة WiFi للتفاعل مع خادم smtp من خلال المنفذ التسلسلي 5 لتحقيق وظيفة إرسال البريد الإلكتروني.

افا (1)

2. تطوير الواجهة

يكمل برنامج DGUS تطوير وظائف العرض واللمس من خلال تراكب الطبقات.يحتاج المستخدمون فقط إلى تحميل مواد الصور المعدة في برنامج DGUS وإعداد وظائف العرض واللمس.

افا (2)

1.C51SبرامجDcom.esign

يتصل المنفذ التسلسلي للشاشة الذكية T5L 5 بوحدة WiFi لإكمال التفاعل مع خادم SMTP.جزء من الكود الرئيسي هو كما يلي:

باطلة uart5_init (u32 الباود)

{

SCON3T = 0x80؛

SCON3R = 0x80؛

الباود = (u32)((مزدوج)(FOSC/8.0)/باود);

BODE3_DIV_H = (باود>>8)&0xff;

BODE3_DIV_L = الباود&0xff;

ES3R = 0؛

ES3T = 0؛

}

باطلة u5_send_byte (u8 بايت)

{

SBUF3_TX = بايت؛

بينما(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

باطلة u5_send_bytes(u8 * بايت، u16 لين)

{

u16 ط؛

ل(i=0;i

{

SBUF3_TX = بايت؛

بينما(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

}

get_input باطلة (u8 * val، u8 len)

{

u8 ط؛

ل(i=0;i

{

إذا (فال == 0xff)

{

فال = 0x00؛

val[i+1] = 0x00;

يعود؛

}

}

}

u8 esp8266_send_cmd(u8 *cmd,u8 *ack,u16 وقت الانتظار,u8 ClearBuffer)

{

u8 الدقة=0;

rx_sta=0;

إذا (ack&&وقت الانتظار&&cmd)

{

بينما (--وقت الانتظار)

{

sys_delay_ms(10);

إذا (rx_sta&0X8000)

{

إذا (esp8266_check_respond (ack))

استراحة؛

}

}

if(waittime==0)res=1;

if(clearBuffer==1)rx_sta=0;

}

دقة العودة؛

}

بنية typedef {

u8 كمد؛

u8 البريد الإلكتروني[20];

اسم u8[20];

عنوان u8[20];

u8 رسالة[60];

}معلومات البريد الإلكتروني؛

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);

إذا (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));

إذا (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,server,15);

sys_read_vp(0x3220,port,15);

sys_read_vp(0x3240,username,15);

sys_read_vp(0x3260,auth_code,15);

get_input(server,30);

get_input(port,30);

get_input(username,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);

إذا (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