python实现批量发送邮件
使用邮件合并生成了许多文档,需要为不同的人发送带有不同附件的邮件,可以这样操作:
首先先创建一个Excel表,用来存放信息,有下面这些内容:
1
收件人 主题 正文 附件
将附件准备好,然后创建下面的python代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import pandas as pd
import yagmail
# 获取用户输入的Excel文件路径
excel_path = input("请输入Excel文件的路径:")
# 读取Excel文件
df = pd.read_excel(excel_path)
# QQ邮箱的SMTP服务器地址和端口
smtp_server = 'smtp.qq.com'
smtp_port = 465
# 发件人QQ邮箱账号和授权码(注意:不是邮箱密码,而是授权码)
sender_email = ''
sender_password = ''
# 初始化yagmail
yag = yagmail.SMTP(sender_email, sender_password, smtp_server, smtp_port)
# 遍历Excel中的每一行,发送邮件
for index, row in df.iterrows():
receiver_email = row['收件人']
subject = row['主题']
body = row['正文']
attachment_path = row['附件']
# 发送邮件
try:
yag.send(to=receiver_email, subject=subject, contents=[body, attachment_path])
print(f"邮件已发送至 {receiver_email}")
except Exception as e:
print(f"发送邮件至 {receiver_email} 失败,错误信息:{e}")
# 关闭yagmail连接
yag.close()
没有安装包的话使用下面命令安装一下就可以了:
1
pip install pandas yagmail
本文由作者按照
CC BY 4.0
进行授权