SMTP Mailer مبتنی بر T5L منبع باز

این مسئله برای شما برای فشار دادن یک مورد بسیار کاربردی Diwen Developer Forum برنده جایزه منبع باز - فرستنده ایمیل smtp مبتنی بر T5L، مهندسان از صفحه نمایش هوشمند T5L، از طریق ماژول WiFi برای دسترسی به سرور smtp، برای دستیابی به عملکرد ارسال ایمیل استفاده می کنند. به مدیر، عملکرد صفحه نمایش برای وارد کردن آدرس ایمیل گیرنده، عنوان ایمیل، محتوای ایمیل و سایر اطلاعات می تواند روی صفحه نمایش داده شود.شایان ذکر است که محتوای ایمیل همچنین از متن ساده، کنترل‌های پیکربندی، تنظیم رنگ متن و سایر روش‌های ویرایش پشتیبانی می‌کند.

1. معماری برنامه

صفحه نمایش هوشمند T5L ماژول WiFi را برای تعامل با سرور smtp از طریق پورت سریال 5 برای دستیابی به عملکرد ارسال ایمیل کنترل می کند.

آوا (1)

2. توسعه رابط

نرم افزار DGUS توسعه عملکردهای نمایش و لمس را از طریق برهم نهی لایه ها تکمیل می کند.کاربران فقط باید مواد تصویری آماده شده را در نرم افزار DGUS بارگذاری کنند و عملکردهای نمایش و لمس را تنظیم کنند.

آوا (2)

1. C51Sنرم افزارDنشان دادن

پورت سریال صفحه نمایش هوشمند T5L 5 با ماژول WiFi ارتباط برقرار می کند تا تعامل با سرور smtp را کامل کند.بخشی از کد اصلی به شرح زیر است:

void uart5_init (u32 baud)

{

SCON3T = 0x80;

SCON3R = 0x80;

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

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

BODE3_DIV_L = baud&0xff;

ES3R = 0;

ES3T = 0;

}

void u5_send_byte (u8 بایت)

{

SBUF3_TX = بایت.

while(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

void u5_send_bytes (u8 *bytes,u16 len)

{

u16 i;

برای (i=0;i

{

SBUF3_TX = بایت.

while(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

}

void get_input (u8 * val,u8 len)

{

u8 i;

برای (i=0;i

{

if(val==0xff)

{

val = 0x00;

val[i+1] = 0x00;

برگشت؛

}

}

}

u8 esp8266_send_cmd(u8 *cmd,u8 *ack,u16timetime,u8 clearBuffer)

{

u8 res=0;

rx_sta=0;

اگر (تأیید&&زمان انتظار&&cmd)

{

در حالی که (--زمان انتظار)

{

sys_delay_ms(10);

if(rx_sta&0X8000)

{

if(esp8266_check_respond(ack))

زنگ تفريح؛

}

}

if(waittime==0)res=1;

if(clearBuffer==1)rx_sta=0;

}

بازگشت res;

}

ساختار typedef{

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)

{

if(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(server,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)

{

if(btn_val2==1)

sys_write_vp(0x3060,"این یک ایمیل از T5L است!\0\0",30);

other if(btn_val2==2)

sys_write_vp(0x3060" \0\0،30)؛

else if(btn_val2==3)

sys_write_vp(0x3060"پررنگقرمز\0\0،30)؛

old_val = btn_val2;

}


زمان ارسال: اکتبر-31-2023