编程语言
首页 > 编程语言> > 风变编程(Python自学笔记)第17关-邮件还能这么发!

风变编程(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