manhuami2007 发表于 2024-1-8 14:27

【STM32MP135F-DK】8-发送邮件

<div class='showpostmsg'><div>本次尝试使用开发板发送邮件,这个功能还是比较实用的,因为邮件既能发送数据,也能通知客户一些消息。</div>

<div>在开发板上发送邮件主要用的是SMTP功能。python里集成了smtplib,可以利用这个库里的函数实现SMTP的功能。</div>

<div>首先,要准备一个支持SMTP服务的邮箱作为发件箱。我这里使用的是163的邮箱,需要打开163邮箱的SMTP功能,需要在163邮箱里进行设置,很方便的就能打开SMTP功能,打开之后会给一个秘钥,这个秘钥是使用smtp服务时的验证密码,注意这里不需要使用自己邮箱的密码,而是要使用smtp服务提供的秘钥。</div>

<div>接下来编写python的代码</div>

<div>
<pre>
<code>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
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)</code></pre>

<p>&nbsp;</p>
</div>

<div>运行代码之后,作为收件箱的QQ邮箱就能收到一封邮件了。</div>

<div></div>

<div>这里用的就是smtplib里的函数,简单的分析一下代码:</div>

<div>mailhost为邮箱的服务器,因为是使用163的邮箱作为发件箱,因此用的是163的邮箱服务器 &#39;smtp.163.com&#39; ,默认使用的是25端口。</div>

<div>mailuser和mailpass是发件箱的邮箱号和秘钥,这个秘钥就是上面说的,开通SMTP服务时提供的秘钥。</div>

<div>receivers是收件箱,这个是个列表,因此可以添加多个收件箱。</div>

<div>接下来是邮件的内容message,通过编辑这个变量能够修改邮件的内容。</div>

<div>可以看出发送邮件的功能并不复杂。</div>
</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

wangerxian 发表于 2024-1-8 16:30

<p>这种功能可以在家做监控,有异常发送邮箱。</p>

秦天qintian0303 发表于 2024-1-8 17:14

<p>开SMTP功能,打开之后会给一个秘钥,这个秘钥是和邮箱对应的吗?</p>

manhuami2007 发表于 2024-1-9 08:42

秦天qintian0303 发表于 2024-1-8 17:14
开SMTP功能,打开之后会给一个秘钥,这个秘钥是和邮箱对应的吗?

<p>是对应的</p>
页: [1]
查看完整版本: 【STM32MP135F-DK】8-发送邮件