惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
WordPress大学
WordPress大学
罗磊的独立博客
小众软件
小众软件
I
InfoQ
Y
Y Combinator Blog
宝玉的分享
宝玉的分享
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Hugging Face - Blog
Hugging Face - Blog
MyScale Blog
MyScale Blog
博客园 - 聂微东
Microsoft Security Blog
Microsoft Security Blog
H
Help Net Security
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园_首页
S
SegmentFault 最新的问题
博客园 - 三生石上(FineUI控件)
P
Proofpoint News Feed
博客园 - 司徒正美
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Azure Blog
Microsoft Azure Blog
Jina AI
Jina AI
N
Netflix TechBlog - Medium

博客园 - 百衲本

Centos7 副本集模式部署 MongoDB centos7部署Nacos集群模式 centos7 yum快速安装clickhouse单机版 k8s高可用部署Seata kubernetes中pod磁盘占用排查 jumpserver V3 终端常用操作 Python 列表生成式、字典生成式与生成器表达式 Python 的可迭代对象、迭代器对象与生成器 python yagmail 模块自动化操作邮件 python自动化操作PDF 国内企业邓白氏编码免费申请流程 Python psutil模块 免费公共API调用清单 Python pathlib 模块 容器网络故障排查:从 ping 到 tcpdump 的全链路思路 systemd详解 APP性能指标 Linux 上禁用 USB 存储设备 线上故障的排查清单,运维小哥拿走不谢!
python email模块自动化操作邮件
百衲本 · 2025-09-26 · via 博客园 - 百衲本

1.发送普通文本邮件

from email.message import EmailMessage
import smtplib
import keyring
password = keyring.get_password("yagmail", "960xxxx@qq.com") #关于keyring的使用可以参考https://www.cnblogs.com/panwenbin-logs/p/19111506


# 创建邮件对象
msg = EmailMessage()
msg['From'] = '960xxxx@qq.com'
msg['To'] = 'panxxx@chxxxxxxding.com' #批量群发 msg['To'] = ', '.join(['a@example.com', 'b@example.com'])
msg['Subject'] = '每日提醒'
msg.set_content('你好,这是今天的日报,请查收!')
msg.set_charset('utf-8') #防止乱码
# 发送邮件
try:
    with smtplib.SMTP_SSL('smtp.qq.com', 465) as smtp:
        #smtp.set_debuglevel(1)  # 开启调试模式
        #code, response = smtp.ehlo()
        # print(f"EHLO响应: {code} - {response}")
        smtp.login('960xxx@qq.com', password)
        smtp.send_message(msg)
        print("✅ 邮件发送成功!")
        smtp.close()
except Exception as e:
    print(f"❌ 邮件发送失败: {e}")

2.创建HTML格式邮件

msg = EmailMessage()
msg['From'] = '960xxx@qq.com'
msg['To'] = 'panxxx@cxxxding.com'
msg['Subject'] = '每日提醒'
msg.set_content('文本内容')
msg.add_alternative("""
<html>
  <body>
    <h1 style="color:blue;">这是HTML版本日报</h1>
    <p>点击 <a href="http://example.com">查看详情</a></p>
  </body>
</html>
.......
""", subtype='html')  #不要忘记subtype='html'指定格式,不添加则内容变为附件内容

3.创建带附件邮件  

msg = EmailMessage()
msg['From'] = '960xxx@qq.com'
msg['To'] = 'panxxx@cxxxxxlding.com'
msg['Subject'] = '每日提醒'
msg.set_content('文本内容')

with open('test.png','rb') as f:
    msg.add_attachment(f.read(),maintype='application',subtype='PNG',filename='test.png')