作者 | 刘顺祥

来源 | 数据分析1480

前言

大概是在两三个月前,陆续有几位在职朋友问我如何使用Python发送邮件,说心里话这方面的操作在我之前的工作履历中真的没有碰到,所以我没有很好地帮助他们。但这个问题一直埋在我的心底,如果将来我也碰到了这个问题怎么办?总不能临时抱佛脚吧,必须得未雨绸缪。所以这一段时间里,一旦有空就翻翻资料,查查google,写写测试代码,今天就简单分享一下我的所学所得(真的不骗你,只需9行的自定义函数!)。

信息准备

发生邮件前必须准备好一些基本信息,例如发件人邮箱地址、发件人邮箱密码、收件人邮箱地址、发件人昵称、收件人昵称、邮件主题以及邮件内容等。这些内容都属于定制化的,那么剩余的就应该是邮件发送了。使用Python发送邮件需要使用到email模块(主要用于邮件的配置)和smtplib模块(用于邮件的发送),接下来我们动手搞起吧!(这里以我的QQ邮箱为例,向其他邮件发送内容。)

# 导入第三方模块
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
# 自定义发送邮件的函数
'''  配置发邮件所需的基础信息    my_sender    # 配置发件人邮箱地址    my_pass      # 配置发件人邮箱密码    to_user      # 配置收件人邮箱地址    my_nick      # 配置发件人昵称  to_nick      # 配置收件人昵称  mail_msg     # 配置邮件内容
'''
def mail(my_sender,my_pass,to_user,my_nick,to_nick,mail_msg):   # 必须将邮件内容做一次MIME的转换 -- 这是发送含链接的邮件   msg=MIMEText(mail_msg,'html','utf-8')  # 配置发件人名称和邮箱地址  msg['From']=formataddr([my_nick,my_sender])  # 配置收件件人名称和邮箱地址 msg['To']=formataddr([to_nick,to_user])  # 配置邮件主题(标题)  msg['Subject']="发送邮件测试"    # 配置Python与邮件的SMTP服务器的连接通道(如果不是QQ邮箱,SMTP服务器是需要修改的) server=smtplib.SMTP_SSL("smtp.qq.com", 465)  # 模拟登陆  server.login(my_sender, my_pass)    # 邮件内容的发送   server.sendmail(my_sender,[to_user,],msg.as_string())   # 关闭连接通道    server.quit()

考虑到大家对代码的理解,我在自定义函数中都配备相应的注解,大家如果还有哪些不明白的地方可以给我留言。需要注意的是,如果你也使用QQ邮箱做测试,必须配置第三方客户端邮箱的授权码,否则邮件是发布出去的。

授权码的配置

第一步:登录自己的QQ邮箱;

第二步:点击邮箱中的【设置】,进入【帐户】栏,下拉你会看见如下的截图:

第三步:点击图中的【开启】,根据下图的提示,发送短信,你将会获得授权码(这个授权码用于配置自定义函数mail中的my_pass参数)。

邮件测试

如果上面的授权码都配置OK了,就可以使用上面的9行自定义函数,快乐地测试起来啦!这里以qq邮箱作为发送方,以我的163邮箱作为接收方,代码如下:

try: mail_msg = """  <p>尊敬的刘顺祥:</p>  <p>您好,非常抱歉打扰到您,这是一份Python 的邮件测试,看见后可以忽略。</p>   <p><a href="https://mp.weixin.qq.com/s/fEs__JCPifFDdL-1dM_6Qw">2个多月近600页的数据分析与挖掘PPT分享给您!</a></p>  """  # 调用函数(登录密码需要换成你自己的)  mail('1029776077@qq.com','kjwpzipnmbfbb','lsxxx2011@163.com','刘顺祥','刘顺祥',mail_msg)  print('邮件发送成功!')
except: print('邮件发送失败!')

如果不出意外的话,函数的运行结果将是“邮件发送成功!”,然后回到我的163邮箱,将会是看见这样的效果:

批量发送

你可能会觉得,发一份邮件有这么麻烦吗?我直接登录邮箱发送就是啦。可问题时,工作场景中可能需要向目标客户发送批量邮件,此时你再通过手动方式,效率就显得渣渣啦。要想实现邮件的批量发送,最容易想到的就应该是for循环啦。这里跟朋友要了邮箱做为测试,代码如下:

惊喜不断,全都发送成功,而且速度也非常的快,三份邮件的发送,估计就1秒钟左右吧。效果是这样的:

结语

OK,今天的内容就分享到这里,如果你有任何问题,欢迎在公众号的留言区域表达你的疑问。同时,也欢迎各位大咖在留言区分享你们自己的策略,我会第一时间将你的留言分享给大家。

  • 最担心的事情终于发生了,APP已经可以一键“脱掉”你的衣服了

  • 我造的假我自己打,Adobe推出“反PS”

  • 李彦宏被泼水,是“多数人的暴力”还是“群众的宣泄”

9行自定义函数教你用Python发送电子邮件!相关推荐

  1. python自建邮件服务器,9行自定义函数教你用Python发送电子邮件!

    作者 l 刘顺祥 来源 l 数据分析1480 前言 大概是在两三个月前,陆续有几位在职朋友问我如何使用Python发送邮件,说心里话这方面的操作在我之前的工作履历中真的没有碰到,所以我没有很好地帮助他 ...

  2. 使用Python发送电子邮件

    by Arjun Krishna Babu 通过Arjun Krishna Babu 如何使用Python发送电子邮件 (How to send emails using Python) As a l ...

  3. 南大通用数据库-Gbase-8a-学习-26-UDF自定义函数(C、python外部函数)

    一.测试环境 名称 值 cpu 12th Gen Intel® Core™ i7-12700H 操作系统 CentOS Linux release 7.9.2009 (Core) 内存 3G 逻辑核数 ...

  4. 发送邮件_使用 Python 发送电子邮件

    在实际运用中,我们可能需要通过电子邮件告诉我们 Python 运行的结果的是否与预期的一致.现在我们就来看一下,怎么通过 Python 发送邮件. 这个示例中我们需要用到的第三方库有: •smtpli ...

  5. python电子邮件地址怎么写_用Python发送电子邮件

    今天给大家分享如何用Python自动发送电子邮件,当我们在云服务器上部署了爬虫,就希望当爬虫发生异常情况的时候能通过自动发送电子邮件来通知我们.因此学会用Python程序自动发送邮件能减轻不少爬虫监控 ...

  6. email python_神器:让python发送电子邮件像傻瓜一样简单

    用过python其他邮件模块老铁们吼一声--tm是给人用的吗? py3_email超简单,超易用. 以近乎傻瓜式的方式发送邮件 到底有多简单,请看:添加标题: add_title() 添加文本: ad ...

  7. python自定义函数画图_利用Python绘图和可视化(长文慎入)

    Python有许多可视化工具,但是我主要讲解matplotlib(http://matplotlib.sourceforge.net).此外,还可以利用诸如d3.js(http://d3js.org/ ...

  8. code vs 代码格式化排版_23行代码,教你用python实现百度翻译!(建议收藏)

    前言: 努力折腾的人生虽然不是符合完美生活,但它一定是个很精彩的人生!生命在于折腾,正如敲代码一样,你们说是吗? 文章主要介绍了用23行python代码实现百度翻译,颇有参考性,喜欢的记得转发收藏慢慢 ...

  9. python自定义函数参数_python自定义函数的参数之四种表现形式

    (1)def a(x,y):print x,y 这是最常见的定义方式,调用该函数,a(1,2)则x取1,y取2,形参与实参相对应,如果a(1)或者a(1,2,3)则会报错 (2)def a(x,y=3 ...

  10. Python中自定义函数的方法

    在Python编程中,可以使用已经定义好的函数,也可以自定义函数实现某些特殊的功能. 1 自定义函数的语法 在Python中,自定义函数的语法如下所示 def 函数名(参数):函数体 其中,def是关 ...

最新文章

  1. php 直接定义 和 construct,PHP _construct()函数讲解
  2. 《复杂》读书笔记(part1)--一些思想是由简单的思想组合而成,我称此为复杂
  3. 用“Web的思想”做PC客户端
  4. JS 转换数字为大写
  5. 电子计算机和多媒体教材分析,电子计算机多媒体教学设计模板
  6. 关于Eureka的几个问题
  7. Codeforces 213E Two Permutations 线段树 (看题解)
  8. 解读系统资质审批的相关政策
  9. 第三章、获取书籍信息
  10. Godot实用代码1000例
  11. 索尼NW-A55日版改中文
  12. 安卓分屏神器_【实用工具】一款鲜为人知的电脑神器,内置300多…找了很久了!...
  13. 如何做抖音小程序赚钱?抖音小程序怎么赚钱?抖音最简单的赚钱方式
  14. bootstrap介绍
  15. 如何有效的快速提高自己的编程能力
  16. 云服务器搭建深度学习环境
  17. 曼谷旅游不可错过的游船体验:游览湄南河,赏两岸风光
  18. Windows系统下CMD命令
  19. 什么是html超文本语言,什么是超文本?HTML超文本标记语言怎么学?
  20. 移动应用程序和网页应用程序_如何不完全破坏您的移动应用程序的用户界面

热门文章

  1. 解决POI读取Excel内存溢出的问题
  2. React-Native 使用自定义IconFont
  3. 如何确保分布式场景下的并发幂等性?
  4. 80%的Oracle JDK用户正在寻找免费的替代品!!!
  5. 超全面的权限系统设计方案!
  6. 普通程序员如何向人工智能方向转型?
  7. Uber的微服务架构实践
  8. 程序员常用的3大Web安全漏洞防御解决方案:XSS、CSRF及SQL注入(图文详解)
  9. ceoi2017 Building Bridges(build)
  10. MATLAB 动图绘制、保存