本次尝试使用开发板发送邮件,这个功能还是比较实用的,因为邮件既能发送数据,也能通知客户一些消息。
在开发板上发送邮件主要用的是SMTP功能。python里集成了smtplib,可以利用这个库里的函数实现SMTP的功能。
首先,要准备一个支持SMTP服务的邮箱作为发件箱。我这里使用的是163的邮箱,需要打开163邮箱的SMTP功能,需要在163邮箱里进行设置,很方便的就能打开SMTP功能,打开之后会给一个秘钥,这个秘钥是使用smtp服务时的验证密码,注意这里不需要使用自己邮箱的密码,而是要使用smtp服务提供的秘钥。
接下来编写python的代码
import smtplib
from email.mime.text import MIMEText
mailhost = 'smtp.163.com'
mailuser = '1**********@163.com'
mailpass = 'T**************A'
sender = '1**********@163.com'
receivers = ['5********@qq.com']
message = MIMEText('from manhuami2007 stm32mp137!','plain','utf-8')
message['Subject'] = 'from manhuami2007'
message['From'] = sender
message['To'] = receivers[0]
try:
smtpObj = smtplib.SMTP()
smtpObj.connect(mailhost,25)
smtpObj.login(mailuser,mailpass)
smtpObj.sendmail(sender,receivers,message.as_string())
smtpObj.quit()
print("send sucess")
except smtplib.SMTPException as e:
print("error",e)
运行代码之后,作为收件箱的QQ邮箱就能收到一封邮件了。
这里用的就是smtplib里的函数,简单的分析一下代码:
mailhost为邮箱的服务器,因为是使用163的邮箱作为发件箱,因此用的是163的邮箱服务器 'smtp.163.com' ,默认使用的是25端口。
mailuser和mailpass是发件箱的邮箱号和秘钥,这个秘钥就是上面说的,开通SMTP服务时提供的秘钥。
receivers是收件箱,这个是个列表,因此可以添加多个收件箱。
接下来是邮件的内容message,通过编辑这个变量能够修改邮件的内容。
可以看出发送邮件的功能并不复杂。