本文描述了如何使用micropython发送一封带附件的邮件。主要使用socket链接,并使用smtp协议,构造一封带文件附件的邮件,并发送到指定邮箱。
附件是采用二进制方式读取,并一次性读入内存进行base64编码,由于我使用了esp32,内存有限,因此也不能发送太大的附件,不加spiram的情况下,几十k的附件勉强过得去。注意文件是放在esp32的根目录下的,如果不是,请自行修改路径代码。
本文的目的主要是了解如何用MIME格式去构造带附件的邮件。
作者水平有限,欢迎批评指正。
def sendMail(subjectStr,contentStr,attachFileName):
#MIME邮件结构:
#1.邮件头mailHead,详细内容见后。邮件头中会定义该邮件为multipart/mixed,并定义边界符boundary "---part1"
#2.邮件头mailHead与邮件体mailBody的分隔符(一个空行\r\n)
#3.邮件体mailBody。边界符的用法:
#----part1(第一层级的边界符,level1.part1开始)
#Content-Type: multipart/alternative;(定义第二个层级)
#boundary="----Part2"(第二个层级的边界符)
#----Part2(第二层级的边界符,level2.part1)
#Content-Type: text/plain;(第二层级第1部分的定义)
#charset="us-ascii"
#Content-Transfer-Encoding: base64
#BalaBala................内容
#----Part2(第二层级的边界符,level2.part2)
#Content-Type: text/html;(第二层级第2部分的定义)
#charset="us-ascii"
#Content-Transfer-Encoding: quoted-printable
#BalaBala..............

本文详细介绍了如何使用ESP32的Micropython通过SMTP协议发送带附件的电子邮件,涉及MIME结构和内存管理。作者分享了构造邮件头和邮件体的方法,以及在有限内存环境下发送附件的技巧。
最低0.47元/天 解锁文章
2042

被折叠的 条评论
为什么被折叠?



