实现功能:
csv模块打开存储有收件人邮箱的.csv文件
读取.csv文件中收件人地址
smtplib模块连接邮箱服务器
群发邮件
# -*- coding: utf-8 -*-
"""
Created on Sun Feb 9 23:52:35 2020
@author: pc
"""
import smtplib
import csv
from email.mime.text import MIMEText #引入email包中构建文本内容的方法
from email.header import Header
# 发件邮箱地址
from_addr="[email protected]"
# 发件邮箱登录密码
password="xxxxx"
#收件人邮箱列表
to_addr=["[email protected]", "[email protected]"]
#企业邮箱smtp服务器
smtp_server='smtp.buaa.edu.cn'
# 邮件内容
text='''江南好,风景旧曾谙,日出江花红胜火,春来江水绿如蓝,能不忆江南?'''
#待写入csv文件的收件人数据:人名+邮箱
data=[['xxx1', '[email protected]'], ['xxx2', '[email protected]']]
# 以“写”的方式打开to_addr.csv文件,前提确保该文件存在且在当前python文件在同一目录下
with open('to_addrs.csv', 'w', newline='') as f:
writer=csv.writer(f)
for row in data:
writer.writerow(row)
# 读取收件人数据,并启动写信和发信流程
with open ('to_addrs.csv', 'r') as f:
reader=csv.reader(f)
for row in reader:
to_addrs=row[1]
msg=MIMEText(text,'plain','utf-8')
msg['From']=Header(from_addr)
msg['To']=Header(to_addrs)
msg['Subject']=Header('python test')
server=smtplib.SMTP_SSL()
% 465为端口号,需上网查询
server.connect(smtp_server,465)
server.login(from_addr, password)
server.sendmail(from_addr, to_addr, msg.as_string())
# 关闭服务器
server.quit()