自动发送邮件的服务器,自动邮件发送_任何情况立刻通知你
原标题:自动邮件发送_任何情况立刻通知你
Python自动邮件发送
在日常工作中,我们经常需要收发邮件,不知大家可曾想过,如果能够实现自动发送,那岂不是爽歪歪~
就像跑图像检测的模型经常跑一两天,如果经常要主动去查看模型进度还是太麻烦了~如果能够实现自动邮件发送,等报表生成后、模型运行结束后或者遇到异常情况就能实现自动邮件通知,岂不是不要太方便?!
今天给大家分享一下如何使用Python实现自动发送邮件。
在实现自动化发送邮件前,先简单介绍一下需要使用到的两个模块:smtplib和email。
smtplib模块主要用来建立服务器链接、服务器断开的工作;
email模块主要负责邮件的构建,比如收件人、邮件标题、邮件内容等。
1. 链接邮箱服务器
在发送邮件前,需要先使用smtplib模块链接邮箱服务器,此处以连接腾讯企业邮箱为例,代码如下:
# 实例化SMTP
smtp = smtplib.SMTP
# 链接邮件服务器
smtp.connect("smtp.exmail.qq.com")
# 配置发送邮箱的用户名和密码
smtp.login("huojc@create80.com", "123456")2. 配置邮件信息
邮件服务器链接完成后,我们就可以配置发送邮件的信息了,其中包括邮件发送的内容、收件人和抄送人信息、附件内容。配置代码如下:
# 配置发送内容msg
msg = MIMEMultipart
msg.attach(MIMEText("test11",_subtype='html',_charset='utf-8'))
msg['Subject'] = Header("testtitle",'utf-8')
msg['From'] = "huojc@create80.com"
# 添加发送人邮件信息(支持群发)
msg['To'] = ';'.join(["huojc@create80.com"])
# 添加抄送人邮件信息
msg['Cc'] = ';'.join(["huojc@create80.com"]) # 抄送邮箱
# 添加附件信息(可包含多个附件)
for a_path in ['D:/test1.txt','D:/test2.docx']:
name = os.path.basename(a_path) # 获取附件文件名
part = MIMEApplication(open(a_path,'rb').read)
part.add_header("Content-Disposition", "attachment", filename=("gbk", "", str(name))) # 可以显示附件的中文名字
msg.attach(part)3. 发送邮件
完成了上面的操作后,就可以进行邮件的发送,在发送完邮件后,需要关闭邮件服务。
# 发送邮件
smtp.sendmail('huojc@create80.com','huojc@create80.com',msg.as_string)
# 关闭邮件服务
smtp.quit
为了方便使用,将上面的代码封装成send_email函数
def send_email(SMTP_host, from_account, from_password, to_account, Cc_email,subject, content,attachment_path):
函数中的参数说明如下:
SMTP_host:指定连接的邮箱服务器,常用邮箱的smtp服务器地址如下:新浪邮箱:smtp.sina.com, 搜狐邮箱:smtp.sohu.com 139邮箱:smtp.139.com 163网易邮箱:smtp.163.com 腾讯企业邮箱:smtp.exmail.qq.com
from_account:发送邮箱的账号
from_password:发送邮箱的密码
to_account:接收邮箱名
Cc_email:抄送邮箱名
subject:发送邮件的标题
content:发送邮件的内容
attachment_path:发送附件的路径
send_email代码如下:
import smtplib
import os
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
from email.header import Header
def send_email(SMTP_host, from_account, from_password, to_account, Cc_email,subject, content,attachment_path):
# 实例化SMTP
smtp = smtplib.SMTP
# 链接邮件服务器
smtp.connect(SMTP_host)
# 配置发送邮箱的用户名和密码
smtp.login(from_account, from_password)
# 配置发送内容msg
msg = MIMEMultipart
msg.attach(MIMEText(content,_subtype='html', _charset='utf-8'))
msg['Subject'] = Header(subject,'utf-8')
msg['From'] = from_account
# 添加发送人邮件信息
msg['To'] = ';'.join(to_account) #群发邮件
# 添加抄送人邮件信息
msg['Cc'] = ';'.join(Cc_email) # 抄送邮箱
# 添加附件信息(包含多个附件)
for a_path in attachment_path:
name = os.path.basename(a_path) # 获取附件文件名
part = MIMEApplication(open(a_path,'rb').read)
part.add_header("Content-Disposition", "attachment", filename=("gbk", "", str(name))) # 可以显示附件的中文名字
msg.attach(part)
# 配置发送邮箱,接受邮箱,以及发送内容
smtp.sendmail(from_account, to_account, msg.as_string)
# 关闭邮件服务
smtp.quit
封装好send_email函数后,我们就可以很方便的发送邮件了,下面以发送邮件到腾讯企业邮箱为例
if __name__ == '__main__':
my_email = 'huojc@create80.com' # 发送邮件的邮箱名
my_email_password = '123456' # 邮箱密码
to_email = ['huojc@create80.com'] # 接收者邮箱,可传入多个
Cc_email = [] # 抄送邮箱,可以传入多个
Email_title = '测试邮件-标题' # 设置发送邮件的标题
Email_content = '测试邮件-内容' # 设置发送邮件的内容
attachment_path = ['D:/邮件发送/p1.jpg','D:/邮件发送/test1.docx','D:/邮件发送/test2.xlsx'] # 附件的路径
# 使用前记得输入邮箱密码
send_email("smtp.exmail.qq.com", my_email, my_email_password, to_email, Cc_email, Email_title, Email_content, attachment_path)
代码运行成功后,发送结果如下所示:
至此,本次分享已结束如果你喜欢的话,可以转发或者点个“在看”支持一下~点击原文链接,可以下载《Python工具代码速查手册》,可以点个star支持一下哦~
简介:浩彬老撕
好玩的数据炼丹师,
曾经的IBM 数据挖掘攻城狮,
还没开始就过气数据科学界的段子手,
致力于数据科学知识分享,不定期送书活动返回搜狐,查看更多
责任编辑:
自动发送邮件的服务器,自动邮件发送_任何情况立刻通知你相关推荐
- mysql自动备份并将备份邮件发送_MySQL 自动备份并发送到邮箱
mysql 备份 准备工作 阅读本文章之前请先查看 mutt 邮件发送 并搭建好邮件发送环境 本文假定你已经搭建好了 mysql 环境,并且能使用 msyqldump 命令 备份脚本 mkdir -p ...
- 邮件发送失败服务器繁忙,★邮件发送失败的原因和解决方法
以下是对发 Hi. This is the PowerMail SMTP Server 1.0 at 72mail.cn . I'm afraid I wasn't able to deliver y ...
- 服务器部署邮件功能_真正连续部署的功能标志
服务器部署邮件功能 Even the best software development teams I work with struggle to solve the problem of comp ...
- java实现邮件发送_基于JavaMail的Java实现简单邮件发送功能
电子邮件的应用非常广泛,例如在某网站注册了一个账户,自动发送一封欢迎邮件,通过邮件找回密码,自动批量发送活动信息等.但这些应用不可能和我们自己平时发邮件一样,先打开浏览器,登录邮箱,创建邮件再发送.本 ...
- php自动发送邮件,PHP实现自动发送邮件功能代码(qq 邮箱)_php实例
本文给大家分享以qq邮箱为例给大家介绍PHP实现自动发送邮件功能代码,感兴趣的朋友参考下吧 最近做一个邮箱验证的功能,研究了一会,搞定了邮件的自动发送.下面用qq邮箱作为演示,一步一步来解释: 代码下 ...
- java 发送邮件_Jenkins实现自动化邮件发送踩坑记录
文章简介 本文分享Jenkins实现邮件发送,安装Jenkins可参考jenkins安装.写这篇文章,是在实际使用Jenkins过程中遇到这样一个问题,当每次Jenkins构建成功或者失败后,需要个人 ...
- html编写邮件发送_如何编写HTML电子邮件通讯
html编写邮件发送 This article was first published in 2006, then updated in 2015. 本文于2006年首次发表,然后于2015年更新. ...
- 使用php 发送邮件,使用PHPMailer实现邮件发送代码分享
这篇文章主要介绍了使用PHPMailer实现邮件发送的代码,以及phpmailer下载链接,有需要的朋友可以参考下 发送邮件是常用的功能,LZ今天在项目中也碰到了,特此分享一下. 首先,去下载PHPM ...
- 地下城与勇士正在自动连接频道服务器,自动连接频道失败 无限自动连接如何处理...
自古以来,DNF就有着"掉线城"和"BUG城"的美称.由于服务器问题,勇士们在玩DNF时经常会碰到网络连接中断的情况,非常闹心.还有就是每一次游戏更新都会出现一 ...
最新文章
- jMonkey Engine SDK3 中文乱码问题
- 注意 ExecuteNonQuery() 返回值
- 使用ifstream和getline读取文件内容[c++]
- 201671030107胡文艳实验三作业互评与改进报告
- Java字符与数字的计算
- java取模多位数_JAVA大数类—基础操作(加减乘除、取模、四舍五入、设置保留位数)...
- 手把手教你做用户画像
- 边缘设备上的实时AI人员检测:在Raspberry Pi上启动SSD
- 用MaskNetwork代币MASK首轮公开销售已结束,今晚23:00将进行第二轮售卖
- Winform/C#入门编程之第三部分容器(四:缩放控件SplitContainer)
- 多目标跟踪算法FairMOT
- 光明顶短信支付:BASE64编码
- 新手小白零基础,该怎样学习编程呢?
- YApi 高级mock脚本 1.8.3版本后,mockJson不能正确返回问题
- smart210 dnw下载
- CCTV主持人博客列表
- 资源分享|免费注册申请永久的eu.org顶级域名创建属于自己的域名,再也不用给博客域名续费了!...
- python爬虫检测ip是否有效
- PostgreSQL测试套-pg_regress使用
- ElasticSearch 监控单个节点详解
热门文章
- 基于java的自动排课系统
- selenium 配置 360极速浏览器(支持NPAPI)
- 恭喜!南京集成电路大学:今天正式成立!时龙兴任校长!
- springBoot实体类无法构造
- Facebook转型
- Arduino是什么 arduino 哪个国家 arduino好学吗 难不难 arduino能做什么 为什么arduino这么火
- 在ArcGIS中创建Python工具(一)
- 水下航行器-动力控制篇
- iperf udb_使用PHP脚本通过Zend Core for i5 / OS访问DB2 UDB for iSeries数据
- 建立新闻内容的数据库_使用数据新闻学产生内容创意