一、smtplib自带模块,发送邮件
二、email自带模块,包装内容、头部信息等
三、QQ邮箱需要生成授权码(相当于密码),163邮箱需要账号和密码
四、实战测试:
import smtplib
from email.mime.text import MIMEText #包装内容
from email.header import Header # 包装头部信息
# 登录邮箱
smtp_obj = smtplib.SMTP("smtp.qq.com")
# 邮箱的密码mctsqknolgyibgfe(授权许可)
smtp_obj.login("398*****@qq.com", "mctsqknolgyibgfe")
# 发送邮件
# 发给谁
to_person = "[email protected]"
# 主题
title = Header("测试邮件发送", "utf-8")
# 发送者
sender = Header("[email protected]","utf-8")
# 内容是什么
msg = MIMEText("这是一个关于python邮件发送", "html", "utf-8")
msg["From"]=sender # 发送者
msg["Subject"] = title
# 发送邮件
smtp_obj.sendmail("398******@qq.com", to_person, msg.as_string())
五、批量发送邮件
从表格中读取数据
import smtplib
from email.mime.text import MIMEText #包装内容
from email.header import Header # 包装头部信息
import xlrd
data = xlrd.open_workbook('名单.xlsx')
sheet = data.sheets()[0]
for i in range(sheet.nrows):
name = sheet.cell_value(i, 0)
old_money = sheet.cell_value(i, 1)
new_money = sheet.cell_value(i, 2)
# print(name, "---", old_money, "---", new_money)
# 登录邮箱
smtp_obj = smtplib.SMTP("smtp.qq.com")
# 邮箱的密码mctsqknolgyibgfe(授权许可)
smtp_obj.login("398*****@qq.com", "mctsqknolgyibgfe")
# 发送邮件
# 发给谁
to_person = "[email protected]"
# 主题
title = Header("测试邮件发送", "utf-8")
# 发送者
sender = Header("[email protected]", "utf-8")
# 内容是什么
msg = MIMEText(f"<h1>通知</h1> 您好:{name},由于<b>疫情原因</b>,公司调整**由原来的{old_money},调整为{new_money}", "html", "utf-8")
msg["From"] = sender # 发送者
msg["Subject"] = title
# 发送邮件
smtp_obj.sendmail("398******@qq.com", to_person, msg.as_string())
print(f"{name}的邮件已发送")