将服务器上的训练结果发送到邮箱

我们实验室是搭建了一个服务器集群来供学生使用计算资源。

我的模型在网络上训练时,我总是要登录服务器查看迭代结果。这真的是个繁琐的过程。而且也不知道训练到哪一步了。

我就想让程序主动的通知我

一开始是打算使用短信服务的,但是配置过程极为繁琐。于是选用邮箱,本来以为要在本地配置邮箱服务,但是我们可以使用qq邮箱的第三方服务来发送邮件。


代码模块

我已经写好了代码模块,可以将它作为网络项目的一个模块方便的在项目中使用。

就像是上面这样。因为与邮件服务器的连接长时间不使用会断开,因此每次都实例化会更好一些。

具体的代码可在我的github获取:easy_smtp_sender

支持的功能

easy_smtp_sender这个python文件,定义了一个简单的smtp邮件发送类 它利用QQ邮箱提供的第三方服务,来发送简单的邮件。当然也欢迎大家提交代码来扩展支持的平台。 目前它仅支持的功能有:

  • 发送邮件到指定的邮箱
  • 邮件正文只能包含简单文本(一段字符串)
  • 附件支持文本,图片,视频的批量发送

接口用法

类的实例化接口为:

EasySmtpSender(sender,password,receiver=None,msg_from=None,is_silent=True)

  • 其中sender与password是必选的参数。sender就是你的邮箱,password是qq邮箱第三方服务的授权码。授权码的申请方法参见下一节。
  • receiver若是不指定的话邮件会被默认的发送到你的sender邮箱中。一般来说不需要指定。
  • msg_form用来指定发件人的姓名,默认是你的邮箱,一般不用指定。
  • 上面所述的参数都是字符串
  • is_silent是一个布尔参数用来指定是否输出‘发送成功’之类的信息。默认是不输出这些消息。

实例化以后只有一个接口可以使用:

object.send_mail(subject,main_body_text=None,attachment=None)

  • subject是一个字符串,指定邮件主题
  • main_body_text是一个字符串,指定正文的文本。可以将本轮训练的loss放在正文。
  • attachment既可以是一个文件路径的字符串,也可以是一个文件路径的列表。其中的文件会以附件的形式发送

实例

上面的邮件发送成功了,就是使用了第一章图片的代码发送的

获取QQ邮箱的授权码

请参见CSDN教程

python学习总结-利用第三方平台发送SMTP邮件_qq_36528311的博客-CSDN博客_python 第三方smtp​blog.csdn.net图标

必须要先获取QQ邮箱的第三方授权码,用来在代码中登录邮箱。


谢谢大家,好用的话,给个赞噢