python脚本读取邮箱导出的CSV文件批量发送邮件(文字/HMTL邮件)

这是一个python脚本,本意是闲着无聊,想要给自己朋友列表发跨年祝贺邮件,然后又不好让别人看出我是群发的,还想让每封发给对方的邮件都喊得出收件人的名字,于是写了这个脚本,我在outlook邮箱导出了联系人的csv列表后,批量读取该文件的数据,然后用变量存储每个人的名词,在正文的称呼里调用变量。我用了HTML格式做正文,你可以自己给点美化。

我用outlook邮箱导出的CSV文件会存在一个坑,那就是第一个键名First Name实际输出不是First Name,而是\ufeffFirst Name,这里给个脚本实际测试一下实际从csv文件里读到的数据是怎样的

1.CSV文件里数据的字典键名称获取

import csv

# 读取CSV文件
file_path = r'C:\xxxx.csv'  # 你的CSV文件路径
with open(file_path, newline='', encoding='utf-8') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        print(row)

2.qq邮箱批量发送脚本

邮箱导出联系人的CSV文件后,如果你Excel打开是乱码,请不用在意,编码问题,脚本能识别的,如果你要修改,建议用记事本打开就不乱码了。

import csv
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

# 配置发送方QQ邮箱信息
sender_email = '你自己的发件邮箱地址'
password = '邮箱授权码'  # 使用生成的授权码,不是密码,自行搜索如何获取邮箱授权码

# 读取CSV文件
file_path = r'c:\xxx.csv'  # 你的CSV文件路径
with open(file_path, newline='', encoding='utf-8') as csvfile:
    reader = csv.DictReader(csvfile)
    recipients = [row for row in reader]

# 连接到QQ的SMTP服务器
with smtplib.SMTP_SSL('smtp.qq.com', 465) as server:  # QQ邮箱的SMTP服务器和端口
    server.login(sender_email, password)  # 使用QQ邮箱和生成的授权码
    
    for recipient in recipients:
        # 创建邮件内容,recipient['电子邮件']中括号里面的值填你自己CSV文件里的邮件地址那一列的键名
        message = MIMEMultipart()
        message['From'] = sender_email
        message['To'] = recipient['电子邮件']
        message['Subject'] = '新年快乐!'

        # 跨年短信内容
        body = f"亲爱的{recipient['姓名']},\n\n愿您在新的一年里拥有幸福、健康和成功!祝您跨越2023到2024的每一步都是坚定和欢乐。新年快乐!\n\nBest regards,\n谭海锋"

        message.attach(MIMEText(body, 'plain'))

        # 发送邮件
        server.sendmail(sender_email, recipient['电子邮件'], message.as_string())
        print(f"已发送至 {recipient['电子邮件']}")

print("所有邮件发送完成!")


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值