0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【开源获奖案例】基于T5L的smtp邮件发送器

迪文智能屏 2023-10-31 08:14 次阅读

——来自迪文开发者论坛

本期为您推送一个非常实用的迪文开发者论坛获奖开源案例——基于T5L的smtp邮件发送器。工程师采用T5L智能通过WiFi模块访问smtp服务器,实现了发送邮件给管理员的功能,操作时在屏幕上输入收件人邮箱、邮件标题、邮件内容等信息即可。值得注意的是,邮件内容还支持纯文本、组态控件、设置文本颜色等编辑方式。

方案简介

方案架构

T5L智能屏通过串口5控制WiFi模块与smtp服务器交互,实现邮件发送功能。

67b46aee-7782-11ee-9788-92fbcf53809c.png

界面开发

DGUS软件通过图层叠加来完成显示和触控功能开发,用户只需要把准备好的图片素材加载到DGUS软件,设置好显示和触控功能即可。

67c6acb8-7782-11ee-9788-92fbcf53809c.png

C51软件设计

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

{

SBUF3_TX = byte;

while(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

void u5_send_bytes(u8 *bytes,u16 len)

{

u16 i; for(i=0;i

{

SBUF3_TX = bytes;

while(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

}

void get_input(u8 * val,u8 len)

{

u8 i;

for(i=0;i

{

if(val==0xff)

{

val = 0x00;

val[i+1] = 0x00;

return;

}

}

}

u8 esp8266_send_cmd(u8 *cmd,u8 *ack,u16 waittime,u8 clearBuffer)

{

u8 res=0;

rx_sta=0;

if(ack&&waittime&&cmd)

{

while(--waittime)

{

sys_delay_ms(10);

if(rx_sta&0X8000)

{

if(esp8266_check_respond(ack))

break;

}

}

if(waittime==0)res=1;

if(clearBuffer==1)rx_sta=0;

}

return res;

}

typedef struct{

u8 cmd;

u8 email[20];

u8 name[20];

u8 title[20];

u8 msg[60];

}EMAIL_INFO;

EMAIL_INFO email_info;

u8 respond[80];

u8 wifi_name[30];

u8 wifi_passwd[30];

u8 server[30];

u8 port[30];

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

}else if(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);

}else if(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);

if(btn_val2!=old_val)

{

if(btn_val2==1)

sys_write_vp(0x3060,"This is a email from T5L!\0\0",30);

else if(btn_val2==2)

sys_write_vp(0x3060,"Click

value='good'>\0\0",30);

else if(btn_val2==3)

sys_write_vp(0x3060,"

Bold

Red

\0\0",30);

old_val = btn_val2;}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    9129

    浏览量

    85348
  • 开源
    +关注

    关注

    3

    文章

    3323

    浏览量

    42475
  • 发送器
    +关注

    关注

    1

    文章

    259

    浏览量

    26816
收藏 人收藏

    评论

    相关推荐

    使用API连接SMTP服务的方法

    SMTP服务基础 SMTP服务是用于发送电子邮件的服务。它遵循
    的头像 发表于 10-30 18:13 224次阅读

    如何排查SMTP服务故障

    在现代通信中,SMTP(Simple Mail Transfer Protocol)服务扮演着至关重要的角色,负责电子邮件发送和接收。当SMTP
    的头像 发表于 10-30 17:42 548次阅读

    如何测试SMTP服务功能

    在开始测试SMTP服务功能之前,了解其重要性是关键。SMTP服务是电子邮件系统的核心,负责邮件
    的头像 发表于 10-30 17:31 660次阅读

    SMTP服务安全性分析

    在数字化时代,电子邮件已成为人们日常沟通的重要工具。SMTP作为电子邮件传输的核心协议,其安全性直接关系到信息的保密性、完整性和可用性。 SMTP协议概述
    的头像 发表于 10-30 17:28 203次阅读

    如何选择SMTP服务

    在电子邮件通信中,SMTP(简单邮件传输协议)服务扮演着至关重要的角色。它负责将邮件发送者传
    的头像 发表于 10-30 17:26 204次阅读

    T5L _DGUS II应用开发指南V1.0

    T5L DGUSII 应用开发指南
    发表于 10-30 17:09 2次下载

    SMTP服务配置教程

    1. 了解SMTP服务 SMTP服务是用于发送电子邮件的服务。它使用
    的头像 发表于 10-30 16:16 901次阅读

    开源获奖案例】基于T5L智能屏的汽车抬头显示方案

    ——来自迪文开发者论坛本期为大家推送迪文开发者论坛获奖开源案例——基于T5L智能屏的汽车抬头显示方案。该方案采用COF智能屏,通过T5LC
    的头像 发表于 09-24 08:03 295次阅读
    【<b class='flag-5'>开源</b><b class='flag-5'>获奖</b>案例】基于<b class='flag-5'>T5L</b>智能屏的汽车抬头显示<b class='flag-5'>器</b>方案

    开源获奖案例】基于T5L智能屏的便携功率计解决方案

    ——来自迪文开发者论坛本期为大家推送迪文开发者论坛获奖开源案例——基于T5L智能屏的便携功率计解决方案。该方案通过智能屏串口进行通信,实时接收监测到的电流、电压和功率数据,并同步显示在屏幕上,使用户
    的头像 发表于 08-01 08:13 310次阅读
    【<b class='flag-5'>开源</b><b class='flag-5'>获奖</b>案例】基于<b class='flag-5'>T5L</b>智能屏的便携功率计解决方案

    开源获奖案例】基于T5L智能屏的指纹识别解决方案

    ——来自迪文开发者论坛本期为大家推送迪文开发者论坛获奖开源案例——基于T5L智能屏的指纹识别解决方案。该方案通过智能屏串口进行Modbus通讯,实现对指纹识别模块的精准控制,并集成了指纹录入与识别功能。可用于门禁管理、员工考勤、
    的头像 发表于 07-06 08:13 301次阅读
    【<b class='flag-5'>开源</b><b class='flag-5'>获奖</b>案例】基于<b class='flag-5'>T5L</b>智能屏的指纹识别解决方案

    基于T5L智能屏的万能红外控制

    ——来自迪文开发者论坛本期为大家推送迪文开发者论坛获奖开源案例——基于T5L智能屏的万能红外控制。工程师通过T5L串口与红外传感
    的头像 发表于 06-22 08:13 332次阅读
    基于<b class='flag-5'>T5L</b>智能屏的万能红外控制<b class='flag-5'>器</b>

    基于T5L芯片的多功能物联网开发套件

    ——来自迪文开发者论坛本期为大家推送迪文开发者论坛获奖开源案例——基于T5L芯片的多功能物联网开发套件。工程师充分运用了T5L1芯片的丰富外设功能,集成了USB、音频喇叭、PWM信号接
    的头像 发表于 06-14 08:13 706次阅读
    基于<b class='flag-5'>T5L</b>芯片的多功能物联网开发套件

    smtp服务指啥 smtp服务器用于接收邮件

    SMTP(Simple Mail Transfer Protocol)是一种用于在网络中发送电子邮件的协议。它定义了邮件的传输规则和相关的命令。SMTP服务
    的头像 发表于 02-02 10:56 1325次阅读

    smtp服务的作用 smtp服务地址怎么填

    其他用于发送电子邮件的应用程序中,以便将邮件发送到正确的服务。 在填写SMTP服务地址时,通
    的头像 发表于 01-22 15:16 7270次阅读

    开源获奖案例】智能培养室

    为大家推送迪文开发者论坛获奖开源案例——智能培养室。工程师通过Modbus协议实现了T5L智能屏控制加热、风机控温功能,还可调节电源功率实现模拟光照功能。系统可根据屏幕上设定的参数自动运行,并保存
    的头像 发表于 01-09 08:13 417次阅读
    【<b class='flag-5'>开源</b><b class='flag-5'>获奖</b>案例】智能培养室