오픈소스 T5L 기반 SMTP 메일러

이 문제는 매우 실용적인 Diwen 개발자 포럼 수상 경력에 빛나는 오픈 소스 사례인 T5L 기반 smtp 메일 발신자, 엔지니어가 T5L 스마트 화면을 사용하여 WiFi 모듈을 통해 smtp 서버에 액세스하여 이메일 전송 기능을 구현하도록 하는 것입니다. 관리자는 수신자의 이메일 주소, 이메일 제목, 이메일 내용 및 기타 정보를 입력하는 화면의 조작을 화면에서 입력할 수 있습니다.이메일 콘텐츠는 일반 텍스트, 구성 제어, 텍스트 색상 설정 및 기타 편집 방법도 지원한다는 점은 주목할 가치가 있습니다.

1. 프로그램 아키텍처

T5L 스마트 스크린은 WiFi 모듈을 제어하여 직렬 포트 5를 통해 smtp 서버와 상호 작용하여 이메일 전송 기능을 달성합니다.

아바 (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 = 바이트;

while(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

무효 u5_send_bytes(u8 *바이트,u16 len)

{

u16 나;

for(i=0;i

{

SBUF3_TX = 바이트;

while(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

}

무효 get_input(u8 * val,u8 len)

{

u8 나;

for(i=0;i

{

if(발==0xff)

{

값 = 0x00;

값[i+1] = 0x00;

반품;

}

}

}

u8 esp8266_send_cmd(u8 *cmd,u8 *ack,u16 대기 시간,u8clearBuffer)

{

u8 해상도=0;

rx_sta=0;

if(확인&&대기 시간&&cmd)

{

동안(--대기 시간)

{

sys_delay_ms(10);

if(rx_sta&0X8000)

{

if(esp8266_check_respond(ack))

부서지다;

}

}

if(대기시간==0)res=1;

if(clearBuffer==1)rx_sta=0;

}

해상도를 반환;

}

형식 정의 구조체{

u8 cmd;

u8 이메일[20];

u8 이름[20];

u8 제목[20];

u8 메시지[60];

}EMAIL_INFO;

EMAIL_INFO email_info;

u8 응답[80];

u8 wifi_이름[30];

u8 wifi_passwd[30];

u8 서버[30];

u8 포트[30];

u8 사용자 이름[30];

u8 인증_코드[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,포트,15);

sys_read_vp(0x3240,사용자명,15);

sys_read_vp(0x3260,auth_code,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);

if(btn_val2!=old_val)

{

if(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;

}


게시 시간: 2023년 10월 31일