python群发邮件不封号_用Python自动群发邮件给欠钱老赖,哭着喊着把钱还你

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

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

前提条件,我的解释器是 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学习技术交流群,从零基础开始到Python各领域的项目实战教程、开发工具与电子书籍。与你分享企业当下对于python人才需求及学好python的高效技巧,不停更新最新教程!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值