SSブログ

ESP32/ESP8266 から raspberry pi 経由でメールを送る

インターネットプロバイダーのメールサーバーのセキュリティが強化されて、暗号化してない通信はできなくなっているケースが増えています。
ESP8266にはTLS通信が可能とのことですが、私の知識と能力ではメール送信をできるようにすることができません。やがてどなたかが簡単にプログラムできるライブラリーを作ってくださることを祈るばかりです。
当面どうやって対処しようかと考えていたのですが、raspberry piにPostfixというメール転送エージェント(MTA)をインストールし、ESP8266からのメールを一旦raspberry piで受けてPostfixでプロバイダーのメールサーバーに転送することを考えました。
結論から言えば 可能な方法なのですが、ちょっと工夫と手間が必要です。

最初はraspberry piにメールユーザーのアカウントを作り(user名とパスワード設定する) そこにESP8266からこれまで使っていたsmtp接続してメールを送信(リレー)できるかと思ったのですが、raspberry piにはつながるものの リレー送信は拒否されました。
これができれば接続先設定だけ変更してプログラムの変更はしなくても済むと思ったのですが、そう簡単にはいきませんでした。
そこで、「ワイヤレスセンサー端末の製作」と「ESP8266を使った猿検知通報システム親機の製作」で使っているESP8266からraspberry piにはTCPでメール内容を送信し、raspberry piではその内容を一旦ファイルに保存し、メール内容をすべて受信した時点で専用のpython プログラムでファイルの内容を送信するようにしました。

Raspberry piにはあらかじめPostfixをインストールしておく必要があり、その方法は「Raspberry Pi に Postfix をインストールする手順」に示してあります。
転送用 Pythonプログラム(Python 2)とインストール方法などは下記よりダウンロードできます。

ダウンロード => Raspi_relayMail_V1.tar.gz
ダウンロード => Raspi_relayMail_V1.zip

対応するワイヤレスセンサー端末と猿検知通報システム親機のプログラムはそれぞれの記事内よりダウンロードしてください。
HostのRaspberry pi のIP アドレスは必要に応じて固定化の設定をしてください。(方法はネットで検索で。)

なお、プログラムの動作保証は致しかねますので ご承知おき願います。


<2022.10.29追記>
 Raspberry piのOS等を最新にして上のプログラム(Python2版)を起動しようとしたらエラーが出て動作しなくなってしまいました。(よくある類の話ですが) そこでこの際 Python3で新たに作ってみました。

ダウンロード => Raspi_relayMail2_V1.zip

これは下記の記事の親機からのメール転送を行うことを目的にしています。

ESP8266
・ワイヤレスセンサー端末の製作
・ESP8266を使った猿検知通報システム親機の製作
機材の都合でいずれも最終版ソフトで「テストメール」を送る確認しかしていませんので、アラームやデータ送信などはご自身で確認(場合によってはデバッグも)をお願いします。

ESP32
・ESP32 & 2.8" G_LCD一体型ユニットの製作(2)
・ESP32 & 2.8" G_LCD一体型ユニットの製作(3)
・圃場侵入者の検知通報装置

 Python2 版では検出記録(txtファイル)の中身をRaspberry piから送られるメール本文に書き込んでいましたが、今回添付ファイルとして扱えるようにしました。
ただし親機ソフトの変更が必要です。こちらを参考にスケッチを変更してください。


>> ブログ記事一覧へ
nice!(0) 
共通テーマ:趣味・カルチャー

nice! 0