原标题:自动邮件发送_任何情况立刻通知你

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 数据挖掘攻城狮,

还没开始就过气数据科学界的段子手,

致力于数据科学知识分享,不定期送书活动返回搜狐,查看更多

责任编辑:

自动发送邮件的服务器,自动邮件发送_任何情况立刻通知你相关推荐

  1. mysql自动备份并将备份邮件发送_MySQL 自动备份并发送到邮箱

    mysql 备份 准备工作 阅读本文章之前请先查看 mutt 邮件发送 并搭建好邮件发送环境 本文假定你已经搭建好了 mysql 环境,并且能使用 msyqldump 命令 备份脚本 mkdir -p ...

  2. 邮件发送失败服务器繁忙,★邮件发送失败的原因和解决方法

    以下是对发 Hi. This is the PowerMail SMTP Server 1.0 at 72mail.cn . I'm afraid I wasn't able to deliver y ...

  3. 服务器部署邮件功能_真正连续部署的功能标志

    服务器部署邮件功能 Even the best software development teams I work with struggle to solve the problem of comp ...

  4. java实现邮件发送_基于JavaMail的Java实现简单邮件发送功能

    电子邮件的应用非常广泛,例如在某网站注册了一个账户,自动发送一封欢迎邮件,通过邮件找回密码,自动批量发送活动信息等.但这些应用不可能和我们自己平时发邮件一样,先打开浏览器,登录邮箱,创建邮件再发送.本 ...

  5. php自动发送邮件,PHP实现自动发送邮件功能代码(qq 邮箱)_php实例

    本文给大家分享以qq邮箱为例给大家介绍PHP实现自动发送邮件功能代码,感兴趣的朋友参考下吧 最近做一个邮箱验证的功能,研究了一会,搞定了邮件的自动发送.下面用qq邮箱作为演示,一步一步来解释: 代码下 ...

  6. java 发送邮件_Jenkins实现自动化邮件发送踩坑记录

    文章简介 本文分享Jenkins实现邮件发送,安装Jenkins可参考jenkins安装.写这篇文章,是在实际使用Jenkins过程中遇到这样一个问题,当每次Jenkins构建成功或者失败后,需要个人 ...

  7. html编写邮件发送_如何编写HTML电子邮件通讯

    html编写邮件发送 This article was first published in 2006, then updated in 2015. 本文于2006年首次发表,然后于2015年更新. ...

  8. 使用php 发送邮件,使用PHPMailer实现邮件发送代码分享

    这篇文章主要介绍了使用PHPMailer实现邮件发送的代码,以及phpmailer下载链接,有需要的朋友可以参考下 发送邮件是常用的功能,LZ今天在项目中也碰到了,特此分享一下. 首先,去下载PHPM ...

  9. 地下城与勇士正在自动连接频道服务器,自动连接频道失败 无限自动连接如何处理...

    自古以来,DNF就有着"掉线城"和"BUG城"的美称.由于服务器问题,勇士们在玩DNF时经常会碰到网络连接中断的情况,非常闹心.还有就是每一次游戏更新都会出现一 ...

最新文章

  1. jMonkey Engine SDK3 中文乱码问题
  2. 注意 ExecuteNonQuery() 返回值
  3. 使用ifstream和getline读取文件内容[c++]
  4. 201671030107胡文艳实验三作业互评与改进报告
  5. Java字符与数字的计算
  6. java取模多位数_JAVA大数类—基础操作(加减乘除、取模、四舍五入、设置保留位数)...
  7. 手把手教你做用户画像
  8. 边缘设备上的实时AI人员检测:在Raspberry Pi上启动SSD
  9. 用MaskNetwork代币MASK首轮公开销售已结束,今晚23:00将进行第二轮售卖
  10. Winform/C#入门编程之第三部分容器(四:缩放控件SplitContainer)
  11. 多目标跟踪算法FairMOT
  12. 光明顶短信支付:BASE64编码
  13. 新手小白零基础,该怎样学习编程呢?
  14. YApi 高级mock脚本 1.8.3版本后,mockJson不能正确返回问题
  15. smart210 dnw下载
  16. CCTV主持人博客列表
  17. 资源分享|免费注册申请永久的eu.org顶级域名创建属于自己的域名,再也不用给博客域名续费了!...
  18. python爬虫检测ip是否有效
  19. PostgreSQL测试套-pg_regress使用
  20. ElasticSearch 监控单个节点详解

热门文章

  1. 基于java的自动排课系统
  2. selenium 配置 360极速浏览器(支持NPAPI)
  3. 恭喜!南京集成电路大学:今天正式成立!时龙兴任校长!
  4. springBoot实体类无法构造
  5. Facebook转型
  6. Arduino是什么 arduino 哪个国家 arduino好学吗 难不难 arduino能做什么 为什么arduino这么火
  7. 在ArcGIS中创建Python工具(一)
  8. 水下航行器-动力控制篇
  9. iperf udb_使用PHP脚本通过Zend Core for i5 / OS访问DB2 UDB for iSeries数据
  10. 建立新闻内容的数据库_使用数据新闻学产生内容创意