SMTP是发送邮件的协议,python内置对SMTP的支持,可以发送纯文本邮件、html邮件,以及带附件的邮件。
python对SMTP的支持,有两大模块:smtplib和email。其中smtplib负责发送邮件,email负责构造邮件。
一、总体思路
(一)创建smtp服务器对象,设置发送邮件服务器的地址和端口,
(二)告诉服务器发送邮箱的地址和密码,
(三)设置具体邮件内容,包括:发送者、接受者、邮件主题、邮件正文、附件,
(四)将设置好的邮件内容传递给服务器,并发送,
(五)发送后关闭服务器,
二、具体步骤:发送一封不带附件的纯文本邮件

#!/usr/bin/python # -*- coding: UTF-8 -*- # 发送一封不带附件的纯文本邮件: from QQ to 139 # SMTP简单邮件传输协议 import smtplib # smtplib:帮助设置SMTP服务器的库 from email.mime.text import MIMEText # email:帮助设置邮件内容的库 # 一、构造邮件 # 1.1 设置相关参数 mail_type = 'plain' # 邮件类型 mail_code = 'utf-8' # 邮件编码 sender = '48237447@qq.com' # 发送方 receiver = '15056925802@139.com,' # 接收方 content = 'python 发送邮件测试……' # 邮件内容 subject = 'python SMTP 发送邮件测试QQ-139' # 主题 # 1.2 将参数配置给邮件 message = MIMEText(content,mail_type,mail_code) message['subject'] = subject message['From'] = sender message['To'] = receiver # 二、发送邮件 # 2.1 设置相关参数 msg_server = 'smtp.qq.com' # 邮件服务器地址 msg_port = 465 # 邮件服务器端口号 sender_pwd = 'fkiemkwmgqaqcahe' # 发送方邮箱授权码 # 2.2 通过指定服务器和邮箱,发送邮件 try: # 2.2.1 开启服务器 server = smtplib.SMTP_SSL(msg_server,msg_port) # 2.2.2 登录邮箱 server.login(sender,sender_pwd) # 2.2.3 发送 server.sendmail(sender,receiver,message.as_string()) # 2.2.4 关闭服务器 server.quit() print('发送成功') except Exception as e: print('发送失败') print(e)
三、注意事项
(一)关于ssl
SSL安全证书确保从客户端设备到邮件服务器端的数据传输为加密方式,除非获取SSL证书的私钥,否则目前第三方无法解密数据。
(二)关于服务器地址和端口号
各邮件服务器地址:网络查找
默认明文发送邮件的端口号:25,
SSL发送邮件的端口号各邮件服务器不同,QQ:465或587
(三)开启SMTP服务
使用邮箱服务器,必须开始SMTP服务,可在邮箱中设置
(四)关于授权码
使用QQ服务器发送邮件时,登录使用的是授权码而非密码,
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】Flutter适配HarmonyOS 5知识地图,实战解析+高频避坑指南
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合终身会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 聊一聊 Linux 上对函数进行 hook 的两种方式
· C# 锁机制全景与高效实践:从 Monitor 到 .NET 9 全新 Lock
· 一则复杂 SQL 改写后有感
· golang中写个字符串遍历谁不会?且看我如何提升 50 倍
· C# 代码如何影响 CPU 缓存速度?
· 突发,CSDN 崩了!程序员们开始慌了?
· 一个基于 .NET 8 + Ant Design Blazor 开发的简洁现代后台管理框架
· AI大模型应用开发入门-LangChain开发Agent
· 鸿蒙Next仓颉语言开发实战教程:订单详情
· C# WinForms 实现打印监听组件