python自建邮件服务器,9行自定义函数教你用Python发送电子邮件!
作者 l 刘顺祥
来源 l 数据分析1480
前言
大概是在两三个月前,陆续有几位在职朋友问我如何使用Python发送邮件,说心里话这方面的操作在我之前的工作履历中真的没有碰到,所以我没有很好地帮助他们。但这个问题一直埋在我的心底,如果将来我也碰到了这个问题怎么办?总不能临时抱佛脚吧,必须得未雨绸缪。所以这一段时间里,一旦有空就翻翻资料,查查google,写写测试代码,今天就简单分享一下我的所学所得(真的不骗你,只需9行的自定义函数!)。
信息准备
发生邮件前必须准备好一些基本信息,例如发件人邮箱地址、发件人邮箱密码、收件人邮箱地址、发件人昵称、收件人昵称、邮件主题以及邮件内容等。这些内容都属于定制化的,那么剩余的就应该是邮件发送了。使用Python发送邮件需要使用到email模块(主要用于邮件的配置)和smtplib模块(用于邮件的发送),接下来我们动手搞起吧!(这里以我的QQ邮箱为例,向其他邮件发送内容。)
# 导入第三方模块
importsmtplib
fromemail.mime.textimportMIMEText
fromemail.utilsimportformataddr
# 自定义发送邮件的函数
'''
配置发邮件所需的基础信息
my_sender # 配置发件人邮箱地址
my_pass # 配置发件人邮箱密码
to_user # 配置收件人邮箱地址
my_nick # 配置发件人昵称
to_nick # 配置收件人昵称
mail_msg # 配置邮件内容
'''
defmail(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 ="""
尊敬的刘顺祥:
您好,非常抱歉打扰到您,这是一份Python 的邮件测试,看见后可以忽略。
2个多月近600页的数据分析与挖掘PPT分享给您!
"""
# 调用函数(登录密码需要换成你自己的)
mail('1029776077@qq.com','kjwpzipnmbfbb','lsxxx2011@163.com','刘顺祥','刘顺祥',mail_msg)
print('邮件发送成功!')
except:
print('邮件发送失败!')
如果不出意外的话,函数的运行结果将是“邮件发送成功!”,然后回到我的163邮箱,将会是看见这样的效果:
批量发送
你可能会觉得,发一份邮件有这么麻烦吗?我直接登录邮箱发送就是啦。可问题时,工作场景中可能需要向目标客户发送批量邮件,此时你再通过手动方式,效率就显得渣渣啦。要想实现邮件的批量发送,最容易想到的就应该是for循环啦。这里跟朋友要了邮箱做为测试,代码如下:
# 配置发邮件所需的基础信息
my_sender='1029776077@qq.com'
my_pass ='kjwpzoozipnmbfbb'
to_user=['lsxxx2011@163.com','179*****66@qq.com','93*****89@qq.com']
my_nick ='刘顺祥'
to_nick = ['刘顺祥','沈**','陈**']
foriinrange(3):
# 配置邮件内容
mail_msg ="""
尊敬的{}:
您好,非常抱歉打扰到您,这是一份Python 的邮件测试,看见后可以忽略。
2个多月近600页的数据分析与挖掘PPT分享给您!
""".format(to_nick[i])
# 调用函数
try:
mail(my_sender,my_pass,to_user[i],my_nick,to_nick[i],mail_msg)
print('邮件发送成功!')
except:
print('邮件发送失败!')
惊喜不断,全都发送成功,而且速度也非常的快,三份邮件的发送,估计就1秒钟左右吧。效果是这样的:
结语
OK,今天的内容就分享到这里,如果你有任何问题,欢迎在公众号的留言区域表达你的疑问。同时,也欢迎各位大咖在留言区分享你们自己的策略,我会第一时间将你的留言分享给大家。
最后,祝有所学习,有所成长
转发,好看支持一下,感谢
python自建邮件服务器,9行自定义函数教你用Python发送电子邮件!相关推荐
- 自建邮件服务器给企业带来的商业价值
2019独角兽企业重金招聘Python工程师标准>>> 自建邮件服务器给企业带来的商业价值 随着电子邮件系统应用多样化的日益升值,尽管lj邮件让人深恶痛绝,电子邮件还是成为了企业所必 ...
- python自建局域网服务器传输文件
python自建局域网服务器传输文件 1 python自带HTTP服务器 1.1 查找网络ip 1.2 从打开文件所在路径快速打开命令行/终端 1.3 使用Python自带的http.server 2 ...
- 自建邮件服务器更给力?
为什么80%的码农都做不了架构师?>>> 邮件是企业信息化建设的基础设施,为了保证企业信息化管理的顺利进行,企业对邮件服务器各方面的功能.成本都相当重视,在选型时也是慎之又慎. ...
- 企业自建邮件服务器的优势和必要性
邮件作为企业重要的通讯工具,承载着大量的机密信息,邮件安全在很大程度上关乎企业数据安全,目前,有实力的公司已经开始越来越多地倾向于自建邮件服务器,自建邮件服务器是否有必要?它又具备哪些优势呢? 一.网 ...
- Python人脸识别黑科技(二):教你使用python+Opencv完成人脸解锁
继上一篇"Python人脸识别黑科技(一):50行代码运用Python+OpenCV实现人脸追踪+详细教程+快速入门+图像识",那么今天我们来讲关于使用python+opencv+ ...
- 学python买什么书-Python爬虫入门看什么书好 小编教你学Python
Python爬虫入门看什么书好 小编教你学Python 时间:2018-01-12 来源:Python爬虫入门讲解 生活在21世纪的互联网时代,各类技术的发展可谓是瞬息万变,这不今天编程界又出 ...
- 自建邮件服务器_EDM邮件营销需要掌握的一系列知识(有福利)
EDM(Electronic Direct Mail)邮件营销,作为最老牌的营销手段,以其成本低廉.精准高效.个性化强和能精准追踪分析等特点,为品牌商及电商带来非常好的营销效果.特别是在获客成本越来越 ...
- python 邮件服务器地址_Salmon---一个基于Python语言的邮件服务器
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. Salmon是使用纯Python语言开发的邮件服务器,旨在以Web框架的形式创建健壮和复杂的邮件应用程序. ...
- 南大通用数据库-Gbase-8a-学习-26-UDF自定义函数(C、python外部函数)
一.测试环境 名称 值 cpu 12th Gen Intel® Core™ i7-12700H 操作系统 CentOS Linux release 7.9.2009 (Core) 内存 3G 逻辑核数 ...
最新文章
- 使用spark-sql-perf评测spark 2.0
- dbartisan mysql_Sybase数据库安全
- 一种非常实用的系统掉电检测和保护电路---摘自:周立功单片机
- .Net Core3 新特性整理
- html:(7):了解hx标签和加强语气
- 二维数组联通子数组和最大
- esxi挂载Linux的nfs盘,ESXi安装centos7挂载群晖NFS
- Microsoft.NET多国语言资源解决方案
- Office编程(二)C#读取Excel并存入数据库,通过XML自定义表名,是否重建并插入数据...
- java paint方法_在Java中,为了使paint()方法执行,以下各项中,()是最佳的调用方法
- SQL Server查询数据库执行记录
- PTA:复数求模的类模板
- 赤子城科技三年两变:音视频社交成主力军,营收结构稳定性存疑
- python网络编程【二】(使用TCP)
- 【pytest】内置 fixtures 之 tmpdir:创建临时文件
- PC端和移动端自适应问题解决方法
- 华为 eNSP 模拟器练习1
- 海量CAD图纸哪里获取呢?
- BT下载到底是什么意思啊?
- DFD图(数据流图)转换至SC图(系统结构图)
热门文章
- Linux 压测工具 stress 安装下载使用
- Ubuntu Linux for Non-Geeks: A Pain-Free, Project-Based, Get-Things-Done Guidebook
- 分享很不错的10个UI图标资源站
- 电脑如何安装双系统 Windows10 和fedora+成功安装+踩坑记-删除EFI文件
- 电脑端(PC)获取cookie
- linux ranger 文本模式,Linux 中 ranger 的使用方法
- java连接derby数据库
- 河南人一定要看的关于自己城市的说法(转自校内网)
- php偷偷接受数据,拒绝人工新增单条数据,PHP实现读取文件导入数据
- vue qrcode生成二维码