我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python群发邮件案例分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python群发邮件案例分析

今天小编给大家分享一下Python群发邮件案例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

背景

想象一下,现在你有一份Word邀请函模板,然后你有一份客户列表,上面有客户的姓名、联系方式、邮箱等基本信息,然后你的老板现在需要替换邀请函模板中的姓名,然后将Word邀请函模板生成Pdf格式,之后编辑统一的邀请话术(邮件正文),再依次发送邀请函附件到客户邮箱,你会怎么做?

Python群发邮件案例分析

正常情况下,我们肯定是复制粘贴Excel表格中的客户姓名,之后挨个Word文档进行替换,之后将Word转Pdf格式,然后复制Excel表格中的邮箱进行发送编辑好的邮件正常,之后附上邀请函附件,点击发送,大概算一下,激情高昂的状态下,这个流程快的话,大概需要1分钟甚至更多。如果客户只有几十个就还好,一个小时就可以搞定,如果客户有几百个,上千个,甚至上万个呢?那估计要哭晕在办公室了。

Python群发邮件案例分析

不过别慌,Python自动化办公,一套组合拳,使用Python自动化办公——Word文档替换、Excel表格读取、Pdf文件生成和Email自动邮件发送一条龙服务安排,下面一起来看看吧!

实现过程

1)替换Word模板生成对应邀请函

这里以上面的Word模板做案例,编写一个函数以客户姓名进行替换模板中的,一步到位。

def get_invitation(name):      doc = docx.Document("template.docx")      for para in doc.paragraphs:          if '<name>' in para.text:              for run in para.runs:                  if '<name>' in run.text:                      runrun.text = run.text.replace('<name>', name)          doc.save(f'./邀请函/{name}.docx')

上面这个代码需要理解Word文档的结构,一个文档有多个段落,用doc.paragraphs获取;段落中的文字用para.text获取;一个段落中可能有多个不同样式的文本,这些不同的样式被称为run,一个段落中包含多个run,用para.runs获取,一个run中的具体文本用run.text获取。了解了这些,再看上述代码,是不是清晰很多呢?

2)将Word邀请函转化为Pdf格式

这个就简单很多了,Python自动化办公中,一行代码就可以实现,而且速度还十分快。

from docx2pdf import convert  convert(f"./邀请函/{name}.docx")

使用convert()函数可以把docx格式的文件转换成同名的Pdf文档。

3)读取Excel表格中的姓名和邮箱

这里需要用到openpyxl库了,当然关于Excel的库还是很多的,这里以这个库作为示例,代码如下:

def get_username_email():      workbook = openpyxl.load_workbook("names.xlsx")      worksheet = workbook.active      for index, row in enumerate(worksheet.rows):          if index > 0:              name = row[0].value  # 获取表格第一列的姓名              email = row[3].value  # 获取表格第四列的邮箱              # print(name, email)             # print(f"{name}邀请函正在生成...")              # get_invitation(name)              send_email(name, email)

上面的代码,理解起来应该并不难,读取Excel中的姓名和邮箱,之后传到get_invitation()生成邀请函,之后传给send_email()函数中自动发送邮件。实际上,这两部是分开进行的,这里是先执行get_invitation()函数,先生成邀请函,之后再将该函数注释掉,再执行发送邮件函数,

4)自动发送邮件

关于自动发送邮件,历史文章中也曾经发布过好几篇了,这里继续用上了,一开始我也觉得挺难的,后来发现也没有想的那么复杂,代码如下:

smtp = smtplib.SMTP(host="smtp.qq.com", port=587)  # smtp.login(邮箱, 授权码)  smtp.login('235977@qq.com', "ruybefkipoo")  def send_email(name, email):      msg = MIMEMultipart()      msg["subject"] = f"您好,{name},您的邀请函!"      msg["from"] = "2352180977@qq.com"      msg["to"] = email      html_content = f"""      <html>          <body>                  <p>您好:{name}<br>                      <b>欢迎加入Python进阶者学习交流群,请在附件中查收您的门票~</b><br>                      点击这里了解更多:<a href="https://www.pdcfighting.com" rel="external nofollow"  rel="external nofollow" >演唱会主页</a>                  </p>          </body>      </html>      """      html_part = MIMEText(html_content, "html")      msg.attach(html_part)      with open(f"./邀请函/{name}.pdf", "rb") as f:          doc_part = MIMEApplication(f.read())          doc_part.add_header("Content-Disposition", "attachment", filename=name)          # 把附件添加到邮件中          msg.attach(doc_part)          # 发送前面准备好的邮件          smtp.send_message(msg)          # 如果放到外边登录,这里就不用退出服务器连接,所以注释掉了          # smtp.quit()

这里需要注意三点,其一是邮箱登录放在了函数外边,防止函数多次调用,短时间多次请求登录邮箱被封禁;其二邮箱登录里边用的是授权码,而不是你的邮箱登录密码,这里使用的是qq邮箱做示例,其他邮箱需要更改smtp服务;其三这个代码里边除了正文中引用了html写法,还携带了Pdf格式的邀请函附件,稍显复杂。

5)完整代码

以上四个步骤进行拆分了,依次完成了Word文档替换、Excel表格读取、Pdf文件生成和Email自动邮件发送任务,这里附上完整的代码。

import docx  from docx2pdf import convert  import openpyxl  import smtplib  from email.mime.text import MIMEText  from email.mime.multipart import MIMEMultipart  from email.mime.application import MIMEApplication  # 生成对应的邀请函,并转存pdf格式  def get_invitation(name):      doc = docx.Document("template.docx")      for para in doc.paragraphs:          if '<name>' in para.text:              for run in para.runs:                  if '<name>' in run.text:                     runrun.text = run.text.replace('<name>', name)          doc.save(f'./邀请函/{name}.docx')      convert(f"./邀请函/{name}.docx")  smtp = smtplib.SMTP(host="smtp.qq.com", port=587)  smtp.login('235977@qq.com', "ruybefkipoo")  def send_email(name, email):      msg = MIMEMultipart()      msg["subject"] = f"您好,{name},您的邀请函!"      msg["from"] = "2352180977@qq.com"      msg["to"] = email      html_content = f"""      <html>          <body>                  <p>您好:{name}                      <b>欢迎加入Python进阶者学习交流群,请在附件中查收您的门票~</b>                      点击这里了解更多:<a href="https://www.pdcfighting.com" rel="external nofollow"  rel="external nofollow" >演唱会主页</a>                  </p>          </body>      </html>      """      html_part = MIMEText(html_content, "html")      msg.attach(html_part)      with open(f"./邀请函/{name}.pdf", "rb") as f:          doc_part = MIMEApplication(f.read())          doc_part.add_header("Content-Disposition", "attachment", filename=name)          # 把附件添加到邮件中          msg.attach(doc_part)          # 发送前面准备好的邮件          smtp.send_message(msg)          # 如果放到外边登录,这里就不用退出服务器连接,所以注释掉了          # smtp.quit()  def get_username_email():      workbook = openpyxl.load_workbook("names.xlsx")      worksheet = workbook.active     for index, row in enumerate(worksheet.rows):          if index > 0:              name = row[0].value              email = row[3].value              # print(name, email)              # print(f"{name}邀请函正在生成...")              # get_invitation(name)              send_email(name, email)  if __name__ == '__main__':      get_username_email()      # get_invitation('Python进阶者')

以上就是“Python群发邮件案例分析”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python群发邮件案例分析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python群发邮件案例分析

今天小编给大家分享一下Python群发邮件案例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。背景想象一下,现在你有一份W
2023-06-29

Spring Boot 发送邮件功能案例分析

邮件服务简介邮件服务在互联网早期就已经出现,如今已成为人们互联网生活中必不可少的一项服务。那么邮件服务是怎么工作的呢?如下给出邮件发送与接收的典型过程:1、发件人使用SMTP协议传输邮件到邮件服务器A;2、邮件服务器A根据邮件中指定的接收者
2023-05-30

python学习群发邮件

https://ke.qq.com/course/109110 腾讯课堂视频使用Python发送邮件1、 SMTP 服务器介绍2、 SMTP 邮件服务器开启3、 Email 模块介绍4、 Smtplib.SMTP_SSL介绍5、 使用Pyt
2023-01-31

python如何群发邮件

小编给大家分享一下python如何群发邮件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!python群 发邮件主要是依赖STMP模块,但不少新手都不会,下面就让一
2023-06-05

Spring Boot发送邮件的示例分析

这篇文章将为大家详细讲解有关Spring Boot发送邮件的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Spring框架使用JavaMailSender接口为发送邮件提供了一个简单的抽象,并且S
2023-05-30

怎么用Python自动群发邮件

这篇文章主要讲解了“怎么用Python自动群发邮件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python自动群发邮件”吧!如何把收件人名字一一对应前提条件,我的解释器是 IDLE
2023-06-16

使用java实现BBS论坛发送邮件过程的案例分析

这篇文章主要介绍使用java实现BBS论坛发送邮件过程的案例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!SpringBoot实践,开发社区登录模块今日份开启 发送邮件三个步骤:1、邮箱设置首先需要注册一个新浪邮
2023-06-14

Python发送邮件的例子

import smtplibfrom email.mime.text import MIMETextfrom email.header import Header # 第三方 SMTP 服务mail_host="smtp.qq.com"
2023-01-31

k8s集群组件实例分析

这篇文章主要介绍了k8s集群组件实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇k8s集群组件实例分析文章都会有所收获,下面我们一起来看看吧。k8s是谷歌以Borg为前身,基于谷歌15年生产环境经验的基础
2023-06-29

详解Python发送邮件实例

Python发送邮件需要smtplib和email两个模块。也正是由于我们在实际工作中可以导入这些模块,才使得处理工作中的任务变得更加的简单。今天,就来好好学习一下使用Python发送邮件吧。 SMTP是发送邮件的协议,Python内置对S
2022-06-04

python实操案例分析

本篇内容主要讲解“python实操案例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python实操案例分析”吧!看到这个先思考,自己怎么输出他?为什么它有颜色?特殊符号去哪找?特殊符号在符
2023-06-29

python列表案例分析

本篇内容主要讲解“python列表案例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python列表案例分析”吧!下面要学的是列表:任务1、“千年虫”我来了函数enumerateenumer
2023-06-29

Python爬虫案例分析

本篇内容介绍了“Python爬虫案例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 一、论述这几个案例以前是给一些想进入Python行业
2023-06-17

Python垃圾邮件的逻辑回归分类示例分析

这篇文章主要介绍“Python垃圾邮件的逻辑回归分类示例分析”,在日常操作中,相信很多人在Python垃圾邮件的逻辑回归分类示例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python垃圾邮件的逻辑回归
2023-06-21

iOS12系统应用发送邮件中附件的示例分析

这篇文章主要介绍iOS12系统应用发送邮件中附件的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!iOS12系统应用发送邮件中的附件iOS12系统应用发送邮件中的附件,如果发送邮件的内容很多,或者包含文档、图片
2023-06-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录