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

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

Python自动邮件发送

在日常工作中,我们经常需要收发邮件,不知大家可曾想过,如果能够实现自动发送,那岂不是爽歪歪~

就像跑图像检测的模型经常跑一两天,如果经常要主动去查看模型进度还是太麻烦了~如果能够实现自动邮件发送,等报表生成后、模型运行结束后或者遇到异常情况就能实现自动邮件通知,岂不是不要太方便?!

今天给大家分享一下如何使用Python实现自动发送邮件。

91044381ff5d9944f3a187c74eb8f7c9.png

在实现自动化发送邮件前,先简单介绍一下需要使用到的两个模块:smtplib和email。

smtplib模块主要用来建立服务器链接、服务器断开的工作;

email模块主要负责邮件的构建,比如收件人、邮件标题、邮件内容等。

c43e64ad2ebe907c044e3e8a4a9a4ce5.png

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)

代码运行成功后,发送结果如下所示:

3f646ed2a7729307e875d0a554af63a6.png

至此,本次分享已结束如果你喜欢的话,可以转发或者点个“在看”支持一下~点击原文链接,可以下载《Python工具代码速查手册》,可以点个star支持一下哦~

简介:浩彬老撕

好玩的数据炼丹师,

曾经的IBM 数据挖掘攻城狮,

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

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

责任编辑:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如何监测文件的变化并自动发送邮件呢?我们可以借助一些工具来实现这一功能。 首先,我们需要选择一个能够监测文件变化的工具。在Windows操作系统中,我们可以使用PowerShell命令或者使用第三方工具实现,如FreeFileSync或Karen's Replicator等。在Linux系统下,我们可以使用inotify工具。 接下来,我们需要配置邮件服务器信息以及发送邮件的脚本。在配置好邮件服务器信息之后,我们可以通过PowerShell命令或者Python脚本来实现自动发送邮件。 在设置监测文件并自动发送邮件之前,我们需要考虑一些注意事项。例如,在选择监测文件的时候要确保该文件经常发生变化,同时要选择监测文件的合适时间间隔。此外,在设置邮件发送脚本的时候,要确保邮件的安全性,比如使用SSL或TLS加密协议等。 总之,通过选择合适的监测文件工具、设置邮件服务器信息、编写自动发送邮件的脚本等步骤,我们可以轻松实现监测文件变化并自动发送邮件的功能,为我们的工作提供更多的便利。 ### 回答2: 监测文件变化自动发送邮件是一种非常方便的方法,可以实时地监测文件的修改情况,保证文件的安全性,避免误操作和丢失。 为了实现这一功能,我们可以使用一些常用的工具或者编程语言,如Linux环境下的inotify工具,或Python语言中的Watchdog库。通过简单的配置,这些工具可以自动监测所需文件的变化,如文件的编辑、删除和重命名等操作,并在检测到变化时自动触发指定的操作。 其中,发送邮件是常见的操作之一。我们可以使用SMTP协议连接到指定的邮件服务器发送邮件到指定的邮箱,同时在邮件正文中添加所需的内容,如修改详情、变化时间等等,方便我们随时随地了解文件的变化情况。 然而,需要注意的是,在实际应用中,我们还需要考虑一些安全性问题,如邮件的加密传输、权限的控制等等,以确保数据的安全性和保密性。 总之,监测文件变化自动发送邮件是一项非常实用的功能,不仅可以提高工作效率和数据的安全性,还能为IT工作者带来更好的工作体验。 ### 回答3: 在软件开发和信息技术行业中,经常需要对代码和文件进行监测,以确保它们在被修改和更新后能够正常运行。对于程序员和系统管理员来说,能够及时了解这些变化非常重要,因此监测文件变化自动发送邮件的功能非常有用。 为实现此功能,可以使用一些第三方工具,如:inotify-tools, md5sum等。 这些工具可以通过监测文件系统的事件,来检测到文件的变化。当系统检测到文件有修改,就会执行一个shell脚本,脚本会通过邮件客户端接口来发送邮件通知邮件内容通常包括被修改文件的详细信息,如文件名、路径、时间戳和修改者等。 使用此功能可以让开发人员和系统管理员能够及时了解文件的变化,把握系统的变更情况。这个功能可以适用于一些紧急项目,要求及时响应问题的环境中,可以减少疏漏和人为失误,提高工作效率,确保项目进展和数据的安全性。 总之,监测文件变化自动发送邮件是一项非常有用的功能,对于程序员和系统管理员来说都非常实用,可以方便地了解系统的变化情况,提高工作效率和数据的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值