将服务器上的训练结果发送到邮箱
我们实验室是搭建了一个服务器集群来供学生使用计算资源。
我的模型在网络上训练时,我总是要登录服务器查看迭代结果。这真的是个繁琐的过程。而且也不知道训练到哪一步了。
我就想让程序主动的通知我。
一开始是打算使用短信服务的,但是配置过程极为繁琐。于是选用邮箱,本来以为要在本地配置邮箱服务,但是我们可以使用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 第三方smtpblog.csdn.net
必须要先获取QQ邮箱的第三方授权码,用来在代码中登录邮箱。
谢谢大家,好用的话,给个赞噢
本文地址:https://blog.csdn.net/DaoiestFire/article/details/107289057