ESP32でメール送信
2023.09.16
ESP32とセンサーを組み合わせると
情報を何かしらの手段で報告させたいという考えに結びつきます。
だってWiFi機能があるんですから(;'∀')
一番簡単にできるのはメール送信かと思うわけですが、
以下はその方法と苦労の備忘録となります。
まず、メール送信させるとしてもレンタルサーバーを持ってる人なら
メールアカウントを自分で作って活用すればいいですが、
無い人はGoogleのGMailを使うのが手っ取り早いでしょう。

ESP32でメール送信するためには、ESP_Mail_Client.hを使います。
このライブラリも登録に罠があって、Arduino IDEの「ライブラリを管理」で
「ESP32 Mail Client」で検索すると、
ESP32 Mail Client by Mobizt 最新ver 2.1.6
ESP Mail Client by Mobizt 最新ver 3.4.14
の2つがあり、とても紛らわしいです。
どちらでも動くと思って上のほうを入れてみたら
あらゆることでどうにもうまくいかないので
下のを使ってみたら試行錯誤はありましたが、ソースの構築に成功しました。

WiFi.h
ESP_Mail_Client.h

あとこの2つのライブラリを使用すると
高確率で「***.hに対して複数のライブラリが見つかりました。」
というエラーがでます。***の部分はWifi.hやSD.hだったりします。
ArduinoIDEにはArduino用としてすでにこの2つのライブラリが存在していて、
ESP32用のライブラリをインストールしたら同じ名前のライブラリが追加登録されてしまうものだから
重複してますよと言ってくるわけですね。
ArduinoIDEが吐き出すエラーは「使用済み」と「未使用」にわけて、
しかも保存されているパスまで教えてくれますから、
未使用のライブラリを直接削除して対応しました。これでコンパイルは通ります。

このメールライブラリはコンパイルが非常に遅いです。
Core i9でもかなり待たされます。
私が使っているノート、Core i5-3320Mだと3分くらいも待たされます。
一見ハングアップしたように見えますが、正常に動いていますので気長に待ちましょう。
コンパイルが完成すると、スケッチの空きが極端に少なくなっているので、
追加の機能を持たせるなら要注意です。

Googleのメールですが、ESP32がGmailアカウントを使ってメールを送信できるように、
アプリパスワードを作成する必要があります。
アプリパスワードは16桁のパスコードで、
安全性の低いアプリやデバイスにGoogleアカウントへのアクセス許可を与えるものです。
アプリパスワードによるサインインについては、
https://support.google.com/accounts/answer/185833
こちらをご覧ください。
アプリ パスワードは、2段階認証が有効になっているアカウントでのみ使用できます。
まずは2段階認証を有効にする手順を書きます。

1.「Googleアカウントを管理」を開きます。
2.ナビゲーション パネルで、[セキュリティ] を選択します。
3.Googleへのログイン」で、「2段階認証」>「開始」を選択します。
4.画面に表示される手順に従います。携帯の電話番号が必要になります。
5.2段階認証を有効にすると、アプリのパスワードを作成できる権利を得ます。

アプリパスワードは以下の手順で取得します。
1.「Googleアカウントを管理」を開きます。
2.ナビゲーションパネルで「セキュリティ」を選択します。
3.「Googleにログインする方法」の「2 段階認証プロセス」を開きます。
4.一番したまでスクロールさせて、「アプリパスワード」を選択します。
5.ここのアプリから「メール」、デバイスを選択で「その他」を選び「ESP32」を登録
6.「生成」を選択。これでアプリパスワードが取得できます。

メールサーバーのログインにはこのアプリパスワードを使うことになります。
メール送信に成功したソースコードを貼っておきます。
画像だけでなく、一応ダウンロードできるようにファイルも置いておきます。

testmail.ino

トラックバックURL
トラックバック一覧

- CafeNote -