跟W5500学习SMTP协议

来源:互联网 发布:js 取字符串的子串 编辑:程序博客网 时间:2024/05/18 20:06


SMTP简介

SMTPSimple Mail Transfer Protocol简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。那我们来剖析一下平时发送电子邮件的整个过程,如图1所示:

SMTP1

1邮件发送过程示意图

我们可以看到SMTP协议是发送过程中所使用的协议,我们这次用W5500(全硬件TCP/IP协议栈网络芯片)给大家模拟演示的仅是图中的第一部分,发信人向邮件服务器发送请求的过程。

SMTPTCP协议25端口监听连续请求。SMTP连接和发送过程:

1、建立TCP连接。

2客户端发送HELO命令以标识发件人自己的身份,然后客户端发送MAIL命令;服务器端正希望以OK作为响应,表明准备接收。

3客户端发送RCPT命令,以标识该电子邮件的计划接收人,可以有多个RCPT行;服务器端则表示是否愿意为收件人接收邮件。

4、协商结束,发送邮件,用命令DATA发送。

5、以“.”号表示结束并将内容一起发出去,结束此次发送,用QUIT命令退出。


SMTP的实现

由于资源受限,在没有操作系统的支持下,通过单片机发送邮件与传统的电脑操作将有很大的不同。这里用W5500126邮箱通信为例来具体分析邮件的发送过程。在本示例代码中,发件人邮箱名为:wiznet2013@126.com,邮箱密码为:hello123。收件人邮箱地址为:3196855541@qq.com,邮件内容为:Hello!WIZnet!。如果想用别的邮箱做测试的话,请修改代码中收件人和发件人的邮箱名和密码。

具体过程很简单,先解析126邮箱的服务器域名smtp.126.com,成功以后就执行邮件发送函数,邮件发送成功以后就跳出循环或者等待。让程序进入了一个死循环,这样程序将不再跳到主循环,避免重复发送相同的邮件,这样使得在W5500的运行模式下,按一下Reset键或者上电一次,只发送一封邮件。

接下来介绍一下具体的测试过程,测试步骤如下:

1SMTP例程采用默认的IP信息,所以在w5500_conf.c文件中设置ip_fromIP_FROM_DEFINE

2、对代码进行编译,之后将程序烧录到野火开发板。

3、连接好网线,USB串口线。打开串口调试工具,复位野火开发板,从输出结果可以得到图2设置信息。

4、首先解析到smtp.126.com邮件服务器的IP,然后发送邮件,如果发送成功,会得到mail send OK的信息。

5、登陆串口提示的账号,查看邮件的收件箱可以找到刚才发送的邮件。

SMTP2

2邮件成功发送打印信息

示例程序下载:http://pan.baidu.com/s/1kTmVUHT

感谢阅读!

欢迎访问:

WIZnet官方网站:http://www.iwiznet.co.kr

WIZnet官方微博:http://weibo.com/wiznet2012

WIZnet微信公众平台:

WIZnet_wechat

0 0