python email模块自动化操作邮件
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')
"一劳永逸" 的话,有是有的,而 "一劳永逸" 的事却极少