min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

Python3 からGmailのSMTPを叩いてメールを送信する

Python3 からメールを送りたい。受信するとこんな感じ。

f:id:min117:20190128005507p:plain

自宅サーバでの動画圧縮の完了をメールで知らせるようにしたい。

f:id:min117:20190128005916p:plain

メール本文には、圧縮完了した日時と動画名を載せる。ついでに圧縮後の動画(自宅サーバで公開)のリンクも表示して再生できるようにする。

 

 

 


できた。

f:id:min117:20190128004753p:plain

f:id:min117:20190128004952p:plain

<注意点memo>

・20-23行目。パスワードを都度入力にしたいときはここを有効にする。

・33-43行目。Python内でシェルコマンド実行はこうやってPIPE使うらしい。

・85-88行目。Toやccはテキトーな文字列でOK。メール送信はここのアドレスを見ているのではないから。ここは単に、メールの「To」欄に表示する文字列を決めているだけ

 f:id:min117:20190128010920p:plain

 

実行はこう。環境は Python3

f:id:min117:20190127225420p:plain

$ python myGmailAuto.py

f:id:min117:20190128010330p:plain

メール送信を実行後、Python内で実行したシェルコマンド(ls)の結果も表示してくれる。

 

動画圧縮(HandBrakeCLI)と組み合わせれば、

$ for i in 動画名.ts; do echo "$i"; HandBrakeCLI -i "$i" -o "$i".mp4 -Z "AppleTV 3" && rm "$i" && python myGmailAuto.py; done

f:id:min117:20190128012849p:plain

圧縮(数時間かかる)完了時にメールで知らせてくれる。超便利。

 

<今後>

・送信:ファイル添付を実装する。

・受信:受信クライアントを実装する。

・受信:HTMLで受信したメールに含まれるポイントリンクを自動でクリックさせる。 

min117.hatenablog.com

・送信:件名や本文を引数から受け付けるようにして、cronのイベントの完了通知に使う。

・メールでなくてLINEでも通知するように改良する。