时间: 2020-09-6|tag:26次围观|0 条评论

用Python自动群发邮件给欠钱老赖,哭着喊着把钱还你插图
image.png

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

本文适合有一丢丢会自动发邮件的道友看,仅供参考,坑位有限。

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

以两个邮箱为例子。

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

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

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

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

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

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

1、遍历两个列表

import smtplibfrom email.mime.text import MIMETextfrom email.header import Headerimport timefrom_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':        breaksmtp_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自动群发邮件给欠钱老赖,哭着喊着把钱还你插图1
image.png
import timeimport smtplibfrom email.mime.text import MIMETextfrom email.header import Headerimport csv#发件人信息from_addr='1499823573@qq.com'password='xzrbanqjofkugaei'#如果有Excel表格就不用新建了,没有csv就得考虑新建csv文件#方式一:通过现有列表新建csv文件#data=[['怪盗基德','123@qq.com'],['上杉绘梨衣','@456.com']]#方式二:通过输入形成列表再新建csv文件dataemail=[]dataname=[]data=[]number=0while 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=0for 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各领域的项目实战教程、开发工具与电子书籍。与你分享企业当下对于python人才需求及学好python的高效技巧,不停更新最新教程!
用Python自动群发邮件给欠钱老赖,哭着喊着把钱还你插图2
image.png

来源:本文为第三方转载,如有侵权请联系小编删除。

文章转载于:https://www.jianshu.com/p/8d5c24085747

原著是一个有趣的人,若有侵权,请通知删除

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自起风了,原文地址《用Python自动群发邮件给欠钱老赖,哭着喊着把钱还你
   

还没有人抢沙发呢~