< 返回技术文档列表

怎么用Python自动群发邮件

发布时间:2021-11-07 02:43:24

这篇文章主要讲解了“怎么用Python自动群发邮件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python自动群发邮件”吧!

如何把收件人名字一一对应

前提条件,我的解释器是 IDLE 3.6 (用惯了,不想升级)

怎么用Python自动群发邮件

以两个邮箱为例子。

to_emails=['123@qq.com','456@qq.com'] to_names=['怪盗基德','上杉绘梨衣']

自动群发邮件,处理收件人姓名时大多是用join函数处理,

形成以逗号分隔的字符串。

官方大大说:Header接受的第一个参数的数据类型必须要是字符串或者字节,列表是不能解码。

to_names=['怪盗基德','上杉绘梨衣'] msg['To'] = Header(",".join)

But,我试了一下,没有用,两个邮箱的收件人都是怪盗基德,上杉绘梨衣。不确定是什么原因,不排除是版本问题,有网友知道可以跟我说一下哈。

1、遍历两个列表

import smtplib from email.mime.text import MIMEText from email.header import Header import time  from_name = input('请输入发件人:') from_addr = input('请输入发件人邮箱:') password = input('请输入发件人邮箱授权码:')  to_namelist = [] to_addrs = [] number=0     while True:     name=input('请输入收件人:')     to_namelist.append(name)     email=input('请输入收件儿邮箱:')     to_addrs.append(email)     temp=input('(可群发)是否继续输入邮箱,输入n加回车键退出,输入任意键继续:')     number=number+1        if temp=='n':         break  smtp_server ='smtp.qq.com'      input_subject = input('请输入邮件主题:')  text = input('请输入邮件内容:')  for i in range(number):               to_name=to_namelist[i]     to_addr=to_addrs[i]     msg = MIMEText(text,'plain','utf-8')     msg['From'] = Header(from_name)     msg['To'] = Header(to_name)        msg['Subject'] = Header(input_subject)     server = smtplib.SMTP_SSL()     server.connect(smtp_server,465)     server.login(from_addr, password)     server.sendmail(from_addr,to_addr, msg.as_string())     server.quit() now=time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) print(now) print('邮件发送成功!')

2、将两个列表通过csv放进Excel表格里,再通过读取Excel表格进行循环

怎么用Python自动群发邮件
import time import smtplib from email.mime.text import MIMEText from email.header import Header import csv   #发件人信息 from_addr='1499823573@qq.com' password='xzrbanqjofkugaei'   #如果有Excel表格就不用新建了,没有csv就得考虑新建csv文件   #方式一:通过现有列表新建csv文件 #data=[['怪盗基德','123@qq.com'],['上杉绘梨衣','@456.com']]  #方式二:通过输入形成列表再新建csv文件 dataemail=[] dataname=[] data=[] number=0 while True:     input_name=input('请输入收件人称呼(可随意写):')     dataname.append(input_name)     input_email=input('请输入收件人邮箱账号:')     dataemail.append(input_email)     b=input('是否继续输入,n退出,任意键继续:')     number=number+1     if b=='n':         break      i=0 for i in range(number):     data.append([dataname[i],dataemail[i]])  with open('C:/Users/ASUS/Desktop/邮箱数据.csv','a',newline='') as f:     writer=csv.writer(f)     for row in data:         writer.writerow(row)  input_fromname=input('请输入发件人:') input_subject=input('请输入邮件主题:') text=input('请输入邮件群发内容:') with open('C:/Users/ASUS/Desktop/邮箱数据.csv','r') as f:     reader=csv.reader(f)     for row in reader:         to_addrs=row[1]         to_name=row[0]         #text='ncoqw'         msg=MIMEText(text,'plain','utf-8')         msg['From']=Header(input_fromname)         msg['To']=Header(to_name)         msg['Subject']=Header(input_subject)         server=smtplib.SMTP_SSL()         server.connect('smtp.qq.com',465)         server.login(from_addr,password)         server.sendmail(from_addr,to_addrs,msg.as_string()) server.quit()          now=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) print(now) print('邮件发送成功!')

这里有个点刚开始没想到

data.append([dataname[i],dataemail[i]])

感谢各位的阅读,以上就是“怎么用Python自动群发邮件”的内容了,经过本文的学习后,相信大家对怎么用Python自动群发邮件这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是血鸟云,小编将为大家推送更多相关知识点的文章,欢迎关注!


/template/Home/Zkeys/PC/Static