最近要通过邮件群发一个通知,正好之前看到过python发邮件的,就试了一把,还挺方便的

可以自由的写正文,摘要,加附件

一.配置邮箱第三方使用

我的是扣扣邮箱,详情见

https://jingyan.baidu.com/article/fedf0737af2b4035ac8977ea.html

示例如下,其他邮箱类似

点击设置

点击账户

点击开启

验证手机

记住授权码

二.代码

1.设置发件人邮箱、邮箱授权码、收件人邮箱

import smtplib
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
import pandas as pd
#发件人邮箱
sender="8208208820@qq.com"
#服务器授权码
password="vvvvvvvvvvvvv"
#服务器地址,这里是QQsmtp服务器
mail_host='smtp.qq.com'
#receivers是收件人邮箱,可填写多个,以列表形式保存
#可通过excel读取邮件地址
data=pd.read_excel('emaildata.xlsx')
receivers_data=data.iloc[:,1]
receivers=receivers_data.tolist()

2.设置email信息

msg代表邮件本身,可以往里面添加文本、图片、附件等

#设置email信息
msg=MIMEMultipart('related')

添加邮件主题,发件人

#写邮件主题
msg["Subject"]='关于xxxxxx的通知'
msg["From"]=sender

添加邮件正文

#邮件正文
msg_content="大家好,这是xxxxx通知,详情见附件,强调几点:\n " \"1.\n" \"2.\n" \"3.\n" \"4."
msg.attach(MIMEText(msg_content,'plain','utf-8'))

添加附件(其实就是再加上一个MIMEText)可以添加文档或者图片,

word文档为例

#添加文档附件就是再加上一个MIMEText
mime=MIMEText(open(r'关于xxxxxx的通知.doc','rb').read(),'base64','utf-8')
#给附件加上必要的头信息
mime.add_header('Content-Disposition','attachment',filename=r'关于xxxx的通知.doc')
#把上面附件添加到MIMEMultipart
msg.attach(mime)

图片为例

#添加图片附件就是再加上一个MIMEImage
mine=mimeMIMEImage(open('test.jpg','rb').read(),'base64')
#给附件加上必要的头信息
mime.add_header('Content-Disposition','attachment',filename='test.jpg')
#把上面附件添加到MIMEMultipart
msg.attach(mime)

3.登陆并发送邮件


#登录并发送邮件
try:#QQsmtp服务器的端口号为465或者587s=smtplib.SMTP_SSL('smtp.qq.com',465)s.set_debuglevel(1)s.login(sender,password)#给receivers列表中的地址逐个发邮件for item in receivers:msg['To']=to=items.sendmail(sender,to,msg.as_string())print("send to %s has succeed"%item)s.quit()print('send to all succeed!')
except smtplib.SMTPException as e:print("failed for %s"%e)

三、效果

参考资料:https://zhuanlan.zhihu.com/p/89868804

感兴趣的朋友可公众号后台回复:邮件 获取完整的代码玩玩。

用python快速群发邮件相关推荐

  1. Python 快速实现分列转到行!

    作者 | 黄伟呢 来源 | 数据分析与统计学之美 之前看到一篇文章,用Excel快速实现分列转到行的操做. 数据源大致是这样的: 基于此,我动起了一个念头:看看如何用Python快速实现这个操作. 数 ...

  2. python ftp服务器限速_用 Python 快速实现 HTTP 和 FTP 服务器

    用 Python 快速实现 HTTP 服务器 有时你需临时搭建一个简单的 Web Server,但你又不想去安装 Apache.Nginx 等这类功能较复杂的 HTTP 服务程序时.这时可以使用 Py ...

  3. python快速编程入门教程-半小时带你快速入门Python编程,Python快速入门教程

    1,Introduction to Python (Python入门) 2,Python是什么? Python 官方网站的描述 Python is a programming language tha ...

  4. python处理表格数据-基于Python快速处理PDF表格数据

    我们有下面一张PDF格式存储的表格,现在需要使用Python将它提取出来. 使用Python提取表格数据需要使用pdfplumber模块,打开CMD,安装代码如下: pip install pdfpl ...

  5. python软件怎么使用-Python快速入门—如何选择使用包管理工具?

    原标题:Python快速入门-如何选择使用包管理工具? 源 | cnblogs文 | 包子 在Python环境中已经有很多成熟的包,可以通过安装这些包来扩展我们的程序. 例如,很多时候Python开发 ...

  6. python魔力手册-小白入门宝典:Python快速入门魔力手册 PDF 超清版

    给大家带来的一篇关于Python编程相关的电子书资源,介绍了关于小白入门.python入门.Python手册方面的内容,本书是由魔力手册出版,格式为PDF,资源大小11.8 MB,魔力手册编写,目前豆 ...

  7. python的快速入门-Python快速入门,你想要的就在这里了!

    原标题:Python快速入门,你想要的就在这里了! 学习Python您是否会面临以下问题?"网上充斥着大量的学习资源.书籍.视频教程和博客,但是大部分都是讲解基础知识,不够深入:也有的比较晦 ...

  8. python快速入门 pdf-Python快速入门 (第3版) PDF 下载

    相关截图: 资料简介: 这是一本Python快速入门书,基于Python 3.6编写.本书分为4部分,*部分讲解Python的基础知识,对Python进行概要的介绍:第二部分介绍Python编程的重点 ...

  9. python快速编程入门教程-终于懂得python快速编程入门教程

    为了提高模块加载的速度,每个模块都会在__pycache__文件夹中放置该模块的预编译模块,命名为module.version.pyc,version是模块的预编译版本编码,一般都包含Python的版 ...

最新文章

  1. 计算机二级公共基础知识2017,2017年计算机二级公共基础知识基础试题
  2. PHP $_REQUEST获取表单提交的代码
  3. Python面向对象:反射(hasattr和getattr和setattr和delattr)
  4. python-IDE的使用(小白先看)
  5. java dataset redis,利用Spring-Data-Redis和Jedis操作Redis缓存
  6. js 循环 等待异步执行完再执行_JS异步执行机制——事件循环(Event Loop)
  7. Spring事务管理2----编程式事务管理
  8. c++ vector排序_C++ vector动态数组的常见操作
  9. 新国二选office和c语言,备考全国计算机二级MS Office考试这些你知道吗?
  10. AxureRP9授权码
  11. 《数学之美》--吴军
  12. 值得一生珍藏的经典台词
  13. Markdown设置字体大小、颜色、类型、加粗
  14. 【学习笔记】ARM Cortex-A(armv7)编程手册
  15. Centos7 一键安装WPS
  16. 配置并启动MSDTC
  17. EBS FA资产模块新增CIP在建工程手册
  18. php答题抽奖源码,PHP转盘抽奖接口实例
  19. 一次小模块的使用过程-LC12S无线模块介绍
  20. 旅游网站的设计与制作

热门文章

  1. ioswebview混编_iOS 原生和H5混合开发总结
  2. [SugerTangYL] 简易电子时钟Verilog设计
  3. 为什么90后不鸟管理者,却愿意被大神虐?
  4. 软考高级 真题 2013年下半年 信息系统项目管理师 案例分析
  5. php懒惰模式,PHP正则贪婪/懒惰匹配模式
  6. 【Codeforces 741 B. Arpa's weak amphitheater and Mehrdad's 】+ 并查集 + 01背包
  7. CVPR2020/UDA/图像翻译-Cross-domain Correspondence Learning for Exemplar-based Image Translation基于范例的跨域对应
  8. Ajax 和 XML: 五种 Ajax 反模式(转载)
  9. MYSQL进阶(一)
  10. IT项目管理:讨论 projects、programs、和 portfolio 之间的关系