Batasan Blog

人類みな五十歩百歩

RPAからの通知メール

クラウドパソコンにSikullixを入れてRPAなどして遊んでいるのだが、それなりに長時間実行させるので、起動した後ずっと見ているわけにはいかないのだが、いつ終わったかわからないし、途中で何らかの理由でエラー終了してしまっているかもしれない。なのでかなりベタなアイデアだが、処理の終了時やエラーの時にGmailで知らせるようにする。
もちろんRPAを扱っているので、それを使ってブラウザからWebメールで送るようにしてもよいのだが、ブラウザを起動してGmailのページにアクセスして....とそれなりに作るのは手間だし、RPAを作ったことがある人ならわかると思うのだが、なかなか思った通り動かない(涙)。特に今回はブラウザを使ってネットサーフィンさせている途中にエラーが起きた場合もメールを送りたいのだが、ブラウザが原因でエラーが起きている可能性もあるので、ブラウザでメールを送るのはあまりよろしくない。またもともとコマンドライン大好き人間(笑)なので、この部分はスクリプトで作ることにする。ただし今のテーマはあくまでもクラウドパソコンなのでメールサーバーにするというわけではない。あくまでも普通のパソコンとしてメール送信できるようにするだけ。
といっても特に難しいことはなく、Gmailが提供しているsmtpというしくみを使うだけで、いじったファイルもmain.cfとtransportの2つだけ。Ubuntuの場合は/etc/postfixの下にある。ただ最近はセキュリティが厳しくなっているのでGmail側でアプリパスワードというものを発行して、自分のクラウドパソコン側にも設置する。

Gmail側は アカウントセキュリティアプリ パスワード から作成する。

このパスワードをスペースは除いてsasl_passwdというファイルに記述しておく。準備ができたら、transport.dbとsasl_passwd.dbを作ってからpostfixを再起動しておく。こんなかんじ。

$ sudo postmap /etc/postfix/transport
$ sudo postmap /etc/postfix/sasl_passwd
$ sudo systemctl restart postfix
$ sudo postmap /etc/postfix/transport
$ sudo postmap /etc/postfix/sasl_passwd
$ sudo systemctl restart postfix

あとは普通にメールを送るだけ。

$ echo "メール本文" |  mail -s "メールの件名"  メールの宛先(xxxxx@xxx.com)
$ echo "メール本文" |  mail -s "メールの件名"  メールの宛先(xxxxx@xxx.com)

やっぱりコマンドラインの世界のほうがRPAよりわかりやすくて良い(笑)。RPAで何かを作る時もスクリプトで出来るところはスクリプトでやったほうが良いケースがたくさんある。全部RPAでやろうとすると結構ハマる(笑)。