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

推荐订阅源

P
Privacy International News Feed
WordPress大学
WordPress大学
Security Latest
Security Latest
Cyberwarzone
Cyberwarzone
K
Kaspersky official blog
Cisco Talos Blog
Cisco Talos Blog
Microsoft Security Blog
Microsoft Security Blog
G
GRAHAM CLULEY
N
News | PayPal Newsroom
Apple Machine Learning Research
Apple Machine Learning Research
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Visual Studio Blog
美团技术团队
J
Java Code Geeks
I
Intezer
The Cloudflare Blog
SecWiki News
SecWiki News
S
Secure Thoughts
Microsoft Azure Blog
Microsoft Azure Blog
V2EX - 技术
V2EX - 技术
C
Cyber Attacks, Cyber Crime and Cyber Security
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Spread Privacy
Spread Privacy
D
DataBreaches.Net
S
Security Affairs
Help Net Security
Help Net Security
S
Securelist
F
Full Disclosure
C
Check Point Blog
F
Fortinet All Blogs
Know Your Adversary
Know Your Adversary
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Y
Y Combinator Blog
云风的 BLOG
云风的 BLOG
阮一峰的网络日志
阮一峰的网络日志
The Register - Security
The Register - Security
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
人人都是产品经理
人人都是产品经理
博客园_首页
G
Google Developers Blog
Google Online Security Blog
Google Online Security Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
H
Help Net Security
酷 壳 – CoolShell
酷 壳 – CoolShell
I
InfoQ
Application and Cybersecurity Blog
Application and Cybersecurity Blog
H
Hacker News: Front Page
L
LINUX DO - 热门话题
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
L
LangChain Blog

博客园 - 百衲本

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')