案例背景

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

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


准备

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

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

例如QQ邮箱,打开设置:

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

把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*****6@qq.com', '22******61@qq.com']
content = '可以的麻烦点赞关注一下,谢谢啦.'
textApart = MIMEText(content)
k=7kind_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'] = kindelif 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'] = kindelif 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)

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

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

Python自动化小技巧14——自动批量发送邮件(带各种附件)相关推荐

  1. Python自动化小技巧01——清洗并替换文件名称

    本次开启一个新栏目,主要是使用Python的一些小技巧和方法,去简化生活中的一些重复性的劳动.这些py文件可以当做脚本使用,代码写好后可以全自动,点一下运行就能使用. 这些技巧和方法不涉及数据科学领域 ...

  2. Python自动化小技巧10——excel文件批量多sheet表合并

    本次案例背景是博主之前实习时遇到的问题,就是有很多个excel表: 每个工作簿里面又有很多sheet子表: 想要把这些子表合并在一起,多个excel工作簿也要合并到一起,手工肯定慢,这种重复性的劳动交 ...

  3. Python自动化小技巧13——批量下载北交所上市公司年报

    案例背景 同学问能不能爬虫下载年报,要下很多公司,一个一个搜索下载太慢了... 这种重复性的劳动交给Python脚本可太适合了 核心思想还是使用selenium库去模拟人输入股票代码和搜索下载. 北交 ...

  4. Python自动化小技巧11——excel文件的文字内容筛选

    上一期讲述了怎么讲多个excel多sheet表进行批量合并,本次案例就是来讲讲合并之后对数据进行清洗整理的过程,筛掉无用的数据. 这个案例中博主是处理文本,主要是各大平台上的新闻的文字.筛选就是把那些 ...

  5. python自动化小技巧08——从剪贴板读取数据(快速复制粘贴)

    从网页获取数据,对于爬虫等方法是很快,但是网页文件通常对新手不友好,结构格式什么的很复杂,对于无写爬虫代码能力的小白就只能复制粘贴数据了,一点点从网页上把数据复制,然后粘贴到excel里面. 但是对于 ...

  6. Python自动化小技巧06——任意图片做出二维码

    Python做二维码是很有趣的小项目.这段代码很简单,新手也能很快学会. 而且很实用,组建活动,送礼物,表白啥都能用的上. 主要依靠MyQR这个库来实现,先来看看效果: 我们将下面这个表情包,变为一个 ...

  7. Python自动化小技巧07——符号计算求方程解、二重积分

    平时做高数数分的作业,手算定积分二重积分什么的太复杂了,虽然scipy能实现在方程和定积分上面求数值解,但是很多时候我们的题目里面都会带着a.x等未知参数,这个时候涉及符号运算,需要用到Python的 ...

  8. 值得玩味儿的14个Python编程小技巧

    全文共394个字,1张图,预计阅读时间5分钟. 最近的工作中经常使用Python编写一些基本解决一些NLP的小问题,在自己的工作日记里面也记录了不少的python编程中常用的小"Trick& ...

  9. Python常用小技巧(五)——批量读取json文件

    Python常用小技巧(五)--批量读取json文件 前言:其实Python能够批量读取很多文件,这里,本人以json文件为例(json是标注图片时生成的文件,记录有标注的坐标和标签,友情推荐标注图片 ...

最新文章

  1. 企业号、订阅号、服务号的一此区别
  2. JS题目总结:原型链/new/json/MVC/Promise
  3. Sun公司的产品AnswerBook存在多种漏洞
  4. HDU 3973 AC's String 字符串哈希
  5. textbox 和textera 文本框多行后不能拉伸
  6. 修改Chrome默认搜索引擎为Google.com
  7. thread和threadLocal之间的关系
  8. python函数后面的点_对python函数后面有多个括号的理解?
  9. linux退出gnome模式,gnome-session怎么关闭比较好?
  10. JPA中@Enumerated注解
  11. 最受推荐的10本Python书籍
  12. 程序员的英语学习指南
  13. 将RGB值转换为灰度值的简单算法
  14. 20210514:廉价机械键盘学习
  15. 如何在Power BI Desktop中创建词云生成器
  16. 云米科技的未来,谈不上乐观
  17. FFmpeg源代码简单分析-编码-av_write_trailer()
  18. Firefox全面兼容中国银联“在线支付”
  19. maven的settings.xml文件
  20. Spark RDD 论文详解(七)讨论

热门文章

  1. 2021-湖湘杯-Web
  2. 计算机领域各大顶会顶刊集合梳理
  3. 中谷教育01 走进 python
  4. Excel提取sheet页签,并生成跳转链接
  5. 【板栗糖GIS】wps—如何查看表格中的超链接
  6. 好莱坞系列电影全扫描
  7. android 中字体加粗
  8. DataBinding学习记录
  9. mui开发app之mui.init()和mui.plusReady()
  10. 进程监控命令ps和top(五)