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 เสร็จสมบูรณ์ส่วนหนึ่งของรหัสหลักมีดังนี้:

โมฆะ 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 len)

{

คุณ16 ฉัน;

สำหรับ(i=0;i

{

SBUF3_TX = ไบต์;

ในขณะที่(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

}

เป็นโมฆะ get_input (u8 * val, u8 len)

{

คุณ8 ฉัน;

สำหรับ(i=0;i

{

ถ้า(val==0xff)

{

วาล = 0x00;

วาล[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 (แอ๊ค))

หยุดพัก;

}

}

ถ้า (รอเวลา==0)res=1;

ถ้า(clearBuffer==1)rx_sta=0;

}

ส่งคืนความละเอียด;

}

โครงสร้าง typedef {

u8 cmd;

อีเมล 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,ขนาดของ(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,เซิร์ฟเวอร์,15);

sys_read_vp(0x3220,พอร์ต,15);

sys_read_vp(0x3240,ชื่อผู้ใช้,15);

sys_read_vp(0x3260,รหัสรับรองความถูกต้อง,15);

get_input (เซิร์ฟเวอร์ 30);

get_input (พอร์ต 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);

ถ้า(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