你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【MCU实战经验】+ 基于STM32F107的SMTP邮件发送

[复制链接]
柯南大侠 发布时间:2014-4-22 21:40
在一些应用场合(物联网等领域),我们需要使远程设备能够自行和互联网进行交互,记录发生的事件,便于用户实时获取远程设备的运行状态。比如一些家庭监控系统,当摄像头检测到图像有变化时便会自动拍照并将照片发送给住户主人;还比如远程的一些数据采集装置需要定时汇报被检测环境的状态,也可以通过网络发送至用户的服务器。类似的应用很多,有一种简单有效的解决办法便是使用邮件。
9 s3 n% ~- M0 M0 f$ X所以,在使用MCU的系统中,使用MCU自动向指定邮箱发送邮件,可以简化系统的复杂度。基于此考虑,本设计使用STM32F107VCT6作为主控芯片实现了发送邮件功能。2 y0 l5 I; l  A8 E! z, K0 ^; {
 
9 A# n/ ]- {8 A8 ^! Y* a: X硬件平台:STM32F107VCT6 + DP83848
) b* w% L; e7 }+ U3 c软件平台:uC/OS-II_V2.92 + LwIP-1.4.1
/ j& z7 Z5 B& Y) E2 [: E9 Q* u WP_20140422_20_50_57_Pro_副本.jpg
3 V! [& _8 E6 L6 j0 e3 Q& m0 g* z, Y邮件发送使用SMTP协议,使用MCU和指定的SMTP服务器建立连接,通过此SMTP服务器向指定邮箱发送邮件即可。( ~: a+ ?0 D: Z/ K+ H0 w  T- L
笔者分别移植了uC/OS-II(到Micrium公司官网下载最新uC/OS-II源码,www.micrium.com,和LwIP的最新版本(最新版本是1.4.1www.savannah.nongnu.org/projects/lwip/),另外,在LwIP网站上还提供了几个示例:http serverpingshellsmtptcpechoudpecho等可以参考。笔者使用其中的smtp示例。$ Y  y; F! c3 C9 D
平台搭建完成后,发送邮件就很简单了,主要分为4步:
1 A" V; z# E0 y1 u. A1、  设置SMTP服务器的IP地址。值得注意的是,若启用了DNS功能,直接设置SMTP服务器的域名即可。笔者使用的是新浪邮箱,新浪的SMTP服务器域名是smtp.sina.com.cn,代码可写成:
7 x( Q$ K' i; W. e1 j" Lsmtp_set_server_addr("smtp.sina.com.cn");
* e% t* s! ?" s1 t/ Z# E 
6 x9 G/ {( v2 _% x0 o2、  设置SMTP服务器使用的端口号,规定端口号是25,所以:
- \4 N: @& ^1 M8 I1 Rsmtp_set_server_port(25);
. L# q2 ~4 s) H3 x; ]) |8 ~事实上,SMTP示例程序中默认端口号就是25,此步可以省略。
8 w6 q6 A$ f, g$ ?  C% f' X3、  设置用户名和密码,SMTP需要登陆验证,只有正确的用户才可以授权使用SMTP服务器发送邮件,[email=笔者的新浪邮箱是gyf_23@sina.com]笔者的新浪邮箱是gyf_23@sina.com[/email],密码就不在此公开了^_^;代码为:2 i) W# e' p# {, b# r, U/ ^! t$ V
smtp_set_auth("gyf_23@sina.com", "密码");
% [/ J! a2 S+ R1 z: ^  ^: l2 ?+ @5 A4、  通过以上三步便可以发送邮件了,笔者使用新浪的SMTP服务器向QQ邮箱发送了一封邮件,邮件的标题是"A email from mcu!",邮件内容是:"Hello, smtp server! This is a email from stm32!"。代码如下:
0 B. @2 }! a/ y2 [6 p. Dsmtp_send_mail("gyf_23@sina.com", "279088304@qq.com", "A email from mcu!", "Hello, smtp server! This is a email from stm32!", my_smtp_result_fn, NULL);/ m$ h3 I: c/ _+ C+ l0 g
 : U0 M+ c! U( `1 k% k) m: z
通过以上几步,查看qq邮箱便可以看到来自STM32的邮件!' X* c% B. l3 Q+ C& N& ?
QQ图片20140422204608.jpg

lwip_samples.zip

下载

1.43 MB, 下载次数: 113

lwip-1.4.1.zip

下载

595.11 KB, 下载次数: 339

Micrium.zip

下载

261.31 KB, 下载次数: 62

收藏 2 评论43 发布时间:2014-4-22 21:40

举报

43个回答
小小路路 回答时间:2014-12-14 21:42:39
已经移植成功,通过公司内部网络可以发送邮件(我们公司有内部邮箱),但是想通过公司路由器发送到QQ货163邮箱时,却发不出去。不知道什么原因,请问有人遇到这样的问题吗?
sstmcu-8346 回答时间:2015-2-9 18:11:29
  \7 e. H( e! A" L+ F5 ]7 ^
我需要一份EMAIL的测试代码,最好能带附件的更好. EMAIL地址: sst_mcu@163.com., _! l" k6 C' Z: F; y- P
谢谢!
kongtiao8 回答时间:2014-11-19 15:34:10

# u- i4 K( q; l* m1 {! m想好好学习一下,您能发一份测试源码吗?我的邮箱569270697@qq.com.谢谢了!
柯南大侠 回答时间:2014-4-22 21:41:18

RE:【MCU实战经验】+ 基于STM32F107的SMTP邮件发送

需要测试源码的可以留言获取哦!移植的很好,目前很稳定。
快乐汉 回答时间:2014-4-22 21:53:40

RE:【MCU实战经验】+ 基于STM32F107的SMTP邮件发送

学习下,谢谢
那片清茶 回答时间:2014-4-23 08:10:01

RE:【MCU实战经验】+ 基于STM32F107的SMTP邮件发送

楼主做得好。。。。
csc57 回答时间:2014-4-30 05:44:13

回复:【MCU实战经验】+ 基于STM32F107的SMTP邮件发送

What is dream? Zhang juzheng
yyy000-248647 回答时间:2014-4-30 05:50:49

RE:【MCU实战经验】+ 基于STM32F107的SMTP邮件发送

需要测试源码的可以留言获取哦!移植的很好,目前很稳定
yang62116 回答时间:2014-4-30 08:56:29

回复:【MCU实战经验】+ 基于STM32F107的SMTP邮件发送

好东西
三尘居士 回答时间:2014-4-30 12:39:19

RE:【MCU实战经验】+ 基于STM32F107的SMTP邮件发送

好东西
三尘居士 回答时间:2014-4-30 12:42:54

RE:【MCU实战经验】+ 基于STM32F107的SMTP邮件发送

最近想做个小东西,大神,能不能把你的电路图发一份啊,谢谢,tmpused@126.com
yanxu-335875 回答时间:2014-4-30 13:18:17

RE:【MCU实战经验】+ 基于STM32F107的SMTP邮件发送

很赞的东西。楼主能把源码发一份吗
yinqiwu 回答时间:2014-5-1 19:40:23

回复:【MCU实战经验】+ 基于STM32F107的SMTP邮件发送

这个例子蛮有实用价值的
连春生 回答时间:2014-5-4 10:42:12

RE:【MCU实战经验】+ 基于STM32F107的SMTP邮件发送

挺好的啊,能发给我一份吗
石头-395391 回答时间:2014-5-5 18:07:15

RE:【MCU实战经验】+ 基于STM32F107的SMTP邮件发送

学习学习
单乐 回答时间:2014-5-5 20:54:16

回复:【MCU实战经验】+ 基于STM32F107的SMTP邮件发送

 厉害,学习了
tiandiyixian20 回答时间:2014-5-10 15:00:44

RE:【MCU实战经验】+ 基于STM32F107的SMTP邮件发送

感谢分享
123下一页
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版