Python发送邮件需配置SMTP参数、认证及内容格式,支持纯文本、HTML和带附件邮件,关键注意授权码、UTF-8编码和附件Content-Disposition头。
用Python发送邮件其实不难,关键是配置好SMTP服务器参数、处理好认证和内容格式。只要搞懂几个核心步骤,发文本、带附件、甚至HTML邮件都能轻松搞定。
发邮件前得知道用哪家邮箱服务商的SMTP地址和端口。常见几家:
注意:不能直接用登录密码,QQ/163等需要在邮箱设置里开启“SMTP服务”,并获取授权码(不是账号密码)。
最基础的场景,适合通知、日志提醒等。用内置的 smtplib 和 email 模块即可:
'plain')小提示:收件人如果是多个,send_message() 自动处理,但 sendmail() 需传入列表,别混用。
用 MIMEMultipart('mixed') 作为外层容器,把文本内容和附件分别封装进去:
ation 或 MIMEBase 包装,设好文件名和MIME类型常见问题:中文路径报错?先用 open(..., 'rb') 读取,别用字符串路径直接传;文件太大?SMTP通常限制单封邮件10MB以内。
想让邮件看起来更正式或带简单样式?把内容类型改成 'html' 即可:
实测建议:用 font-family: "Microsoft YaHei", sans-serif; 兼容性较好;图片尽量用在线URL,避免嵌入base64(加载慢且部分客户端屏蔽)。
SMTP发信的核心就这几步:连服务器、登账号、组消息、发出去。不复杂但容易忽略授权码、编码、附件头这些细节。动手试一次,比看十篇教程都管用。