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

创新互联主要从事成都做网站、成都网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务纳雍,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792
本文适合有一丢丢会自动发邮件的道友看,仅供参考,坑位有限。
前提条件,我的解释器是 IDLE 3.6 (用惯了,不想升级)
以两个邮箱为例子。
- 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表格进行循环
- 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自动群发邮件给欠钱老赖,哭着喊着把钱还你
                
                分享地址:http://www.csdahua.cn/qtweb/news28/89378.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网