风变编程(Python自学笔记)第17关-邮件还能这么发!
作者:互联网
第17关—邮件还能这么发!
群发邮件模板:
# smtplib 用于邮件的发信动作
import smtplib
# email 用于构建邮件内容
from email.mime.text import MIMEText
# 用于构建邮件头
from email.header import Header
#引用csv模块
import csv
# 发信方的信息:发信邮箱,QQ邮箱授权码
#from_addr=input('请输入发件人邮箱:')
#passport=input('请输入发件人邮箱的授权码:')
from_addr='XXXXXX'
passport='XXXXXX'
# 发信服务器
smtp_server='smtp.qq.com'
#邮件内容
text = '''亲爱的XXX,你好!
期末复习周请抓紧复习!
go for it! just do it!
'''
# 待写入csv文件的收件人数据:人名+邮箱
# 记得替换成你要发送的名字和邮箱
#如:data = [['顾佳凯1号 ', 'gujiakaitop@163.com'],['顾佳凯2号', 'gujiakai2021@outlook.com']]
data=[['姓名','邮箱地址'],['xxx','xxx']]
# 写入收件人数据
with open(r'xxx.csv文件的绝对路径','w',newline='') as f:
writer=csv.writer(f)
for row in data:
writer.writerow(row)
# 读取收件人数据,并启动写信和发信流程
with open(r'xxx.csv文件的绝对路径','r',newline='',encoding='utf-8') as f:
reader=csv.reader(f)
for row in reader:
to_addrs=row[1]
msg = MIMEText(text,'plain','utf-8')# 邮箱正文内容,第一个参数为内容,第二个参数为格式(plain 为纯文本),第三个参数为编码
#邮件头信息
msg['From'] = Header(from_addr)
msg['To'] = Header(",".join(to_addrs))
msg['Subject'] = Header('xxx')
# 开启发信服务
server = smtplib.SMTP()
server.connect(smtp_server, 25)
# 登录发信邮箱
server.login(from_addr, passport)
# 发送邮件
try:
server.sendmail(from_addr, to_addrs, msg.as_string())
print('恭喜,发送成功')
except:
print('发送失败,请重试')
# 关闭服务器
server.quit()
标签:发信,addr,17,Python,server,风变,邮箱,csv,邮件 来源: https://www.cnblogs.com/gujiakai-top/p/14907550.html