使用python批量下发配置 python批量发送不同附件

您所在的位置:网站首页 python批量发送不同附件 使用python批量下发配置 python批量发送不同附件

使用python批量下发配置 python批量发送不同附件

2024-07-16 11:17| 来源: 网络整理| 查看: 265

案例背景

我的博客下面评论都是各种要数据的......一个一个发其实很浪费时间的,每次输入评论者的邮箱,然后打开数据所在的文件夹,上传,填写标题正文,发送.......

一模一样的流程,所以这种重复性的劳动肯定要用Python来解决了。

准备

这次代码主要依赖email库,这个库应该不用下载,Python自带。

当然想要你的邮箱能被代码运行,首先你得准备配置一下你的邮箱。

例如QQ邮箱,打开设置:

使用python批量下发配置 python批量发送不同附件_发邮件

然后找到账户页面下的SMTP服务

使用python批量下发配置 python批量发送不同附件_附件_02

 

把pop3/SMTP这个服务打开。

当然还需要手机短信验证啥的,不过应该不难。

开了服务后会得到一个类似于密码一样的一串字母,这是授权码,在代码里面你得输入才能登陆到邮箱上去。

 代码实现

这里导包,然后输入自己的邮箱,要发的人的邮箱,可以是列表,就实现了群发:

import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication from email.header import Header fromaddr = '22********@qq.com' password = '********' toaddrs = ['2717*****[email protected]', '22******[email protected]'] content = '可以的麻烦点赞关注一下,谢谢啦.' textApart = MIMEText(content) k=7 kind_d={1:'二手车',2:'网飞影视',3:'天气聚类',4:'经济增长',5:'外卖文本分类',6:'文本十分类',7:'泰坦尼克号'} kind=kind_d[k]

我把我的邮箱和密码都*号打码了 ,要用的输入你们自己的邮箱(fromaddr)和授权码(password),还有接受目标的邮箱(toaddrs)就行。

content是邮件正文,字符串,可以自己改。

至于下面的k=7,kind_d字典,  kind,这是我用来选择发哪些附件的变量选择....有的人评价要二手车数据,有的评论要网飞影视数据.....我赋值k就改变了kind,然后对kind进行条件判断,来选择我要发送的附件:

if kind=='二手车': File = 'D:\\AAA最近要用\\数学建模\\21MathorCup挑战杯\\2021年MathorCup大数据竞赛赛道A\\附件\\附件1:估价训练数据.txt' Apart = MIMEApplication(open(File, 'rb').read()) Apart.add_header('Content-Disposition', 'attachment', filename='附件1:估价训练数据.txt') File1 = 'D:\AAA最近要用\\数学建模\\21MathorCup挑战杯\\2021年MathorCup大数据竞赛赛道A\\附件\\附件2:估价验证数据.txt' Apart1 = MIMEApplication(open(File1, 'rb').read()) Apart1.add_header('Content-Disposition', 'attachment', filename='附件2:估价验证数据.txt') m = MIMEMultipart() m.attach(textApart) m.attach(Apart) m.attach(Apart1) m['Subject'] = kind elif kind=='网飞影视': File = 'D:\\AAA最近要用\\接单项目\\网飞电影\\netflix_titles.csv' Apart = MIMEApplication(open(File, 'rb').read()) Apart.add_header('Content-Disposition', 'attachment', filename='netflix_titles.csv') m = MIMEMultipart() m.attach(textApart) m.attach(Apart) m['Subject'] = kind elif kind=='天气聚类': File = 'D:\\AAA最近要用\\接单项目\\天气\\天气数据.zip' Apart = MIMEApplication(open(File, 'rb').read()) Apart.add_header('Content-Disposition', 'attachment', filename='天气数据.zip') m = MIMEMultipart() m.attach(textApart) m.attach(Apart) m['Subject'] = kind elif kind=='经济增长': File = 'D:\\AAA最近要用\\接单项目\\00熟人\\姜珮瑶经济增长\\实证\\data.xlsx' Apart = MIMEApplication(open(File, 'rb').read()) Apart.add_header('Content-Disposition', 'attachment', filename='data.xlsx') m = MIMEMultipart() m.attach(textApart) m.attach(Apart) m['Subject'] = kind elif kind=='外卖文本分类': File = 'D:\\AAA最近要用\\深度学习\\自己的项目\\中文情感分类\\外卖.xlsx' Apart = MIMEApplication(open(File, 'rb').read()) Apart.add_header('Content-Disposition', 'attachment', filename='外卖.xlsx') File1 = 'D:\\AAA最近要用\\深度学习\\自己的项目\\中文情感分类\\stopwords.txt' Apart1 = MIMEApplication(open(File1, 'rb').read()) Apart1.add_header('Content-Disposition', 'attachment', filename='stopwords.txt') m = MIMEMultipart() m.attach(textApart) m.attach(Apart) m.attach(Apart1) m['Subject'] = kind elif kind=='文本十分类': File = 'D:\\AAA最近要用\\深度学习\\自己的项目\\中文情感分类\\十分类文本.xlsx' Apart = MIMEApplication(open(File, 'rb').read()) Apart.add_header('Content-Disposition', 'attachment', filename='十分类文本.xlsx') File1 = 'D:\\AAA最近要用\\深度学习\\自己的项目\\中文情感分类\\stopwords.txt' Apart1 = MIMEApplication(open(File1, 'rb').read()) Apart1.add_header('Content-Disposition', 'attachment', filename='stopwords.txt') m = MIMEMultipart() m.attach(textApart) m.attach(Apart) m.attach(Apart1) m['Subject'] = kind elif kind=='泰坦尼克号': File = 'D:\\AAA最近要用\\kaggle\\泰坦尼克号\\train.csv' Apart = MIMEApplication(open(File, 'rb').read()) Apart.add_header('Content-Disposition', 'attachment', filename='train.csv') File1 = 'D:\\AAA最近要用\\kaggle\\泰坦尼克号\\test.csv' Apart1 = MIMEApplication(open(File1, 'rb').read()) Apart1.add_header('Content-Disposition', 'attachment', filename='test.csv') m = MIMEMultipart() m.attach(textApart) m.attach(Apart) m.attach(Apart1) m['Subject'] = kind

当然如果你不需要判断发什么附件就直接拿出一段用就行。

要加很多附件可以写循环。

File是文件路径,后面用MIMEApplication读取,然后生成MIMEMultipart类命名为m,后面再对m添加正文,附件。

无论什么类型的附件(常用的txt,xlsx,docx,压缩包等)都可以,在File里面给出它的绝对路径就行。

然后再对m添加发送人,接收人,成功了就打印,没成功就打印报错信息。

m['From'] = Header(fromaddr) m['To'] = Header(",".join(toaddrs)) try: server = smtplib.SMTP('smtp.qq.com') server.login(fromaddr,password) server.sendmail(fromaddr, toaddrs, m.as_string()) print('success') server.quit() except smtplib.SMTPException as e: print('error:',e)

然后就完成了这个脚本编写。

以后我输入收件人邮箱和我要发送的附件编号,就能自动发邮件了。给各位评价要数据的同学们更加迅速的服务~



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3