將服務器上的訓練結果發送到郵箱

我們實驗室是搭建了一個服務器集羣來供學生使用計算資源。

我的模型在網絡上訓練時,我總是要登錄服務器查看迭代結果。這真的是個繁瑣的過程。而且也不知道訓練到哪一步了。

我就想讓程序主動的通知我

一開始是打算使用短信服務的,但是配置過程極爲繁瑣。於是選用郵箱,本來以爲要在本地配置郵箱服務,但是我們可以使用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郵箱的第三方授權碼,用來在代碼中登錄郵箱。


謝謝大家,好用的話,給個贊噢