ESP8266/ESP32を使ってGmail経由でメールを送信する(2)

このページをスマホなどでご覧になる場合は、画面を横長にする方が読みやすくなります。
目次へ  前のページへ (1) (2) (3) 次のページへ
2022年02月22日 公開。

3.Gmailにログインする際のパスワードについて

3-1.2段階認証について

リスト1MAIL_PASSWORD定数(Gmailにログインする際に必要なパスワード)の設定方法が、Googleのアカウントで2段階認証をする設定になっているかどうかで変わるという話は、前章でお話ししました。この章では、その事について説明します。

なお、この記事を読まれる方はご存じと思いますが、念のためにGoogleの2段階認証について説明しておきます。

Gmailを含むGoogleのサービスにログインするには、ユーザー名とパスワードが必要です。

それらの内、ユーザー名(後ろに@gmail.comを付ければそのままGmailのアドレスになる)は、必要に応じて他人に公開するものなので、Googleアカウントの正規ユーザーだけが知っているのはパスワードのみとなります。そのため、パスワードが他人に知られたら、他人が正規ユーザーのふりをして、Googleのサービスを利用できることになります。(なりすまし)

仮に、色々なインターネット上のサービスのログインパスワードを、使いまわしていたとしたら、Googleのセキュリティが十分でも、他のサービスからパスワードが流出して、Googleのサービスを他人に使われてしまう可能性があります。また、生年月日などから、推測されやすいパスワードを使っている場合も、同様です。さらに、誰かにインターネットの通信を傍受されて、パスワード送信時に傍受されてしまう可能性もゼロではありません。このため、パスワードだけで十分なセキュリティを確保するのは難しいのです。

そこで、Googleのサービスを利用する場合は、SMS(ショートメッセージサービス)を用いた2段階認証を利用できる様になっています。2段階認証を使うと、ログインの手間が多少増えてしまうものの、パスワードだけでセキュリティを確保するよりも、安全にGoogleのサービスが利用できます。(図1参照)

注:全てのユーザーが2段階認証を利用する事を強要されている訳ではなく、2段階認証を使用するか、それとも、パスワードだけの認証をするかは、Googleアカウントで切り替える事ができます。2段階認証をするには、Googleに携帯電話の番号を教える必要がありますから、Googleに携帯電話の番号を知られたくない人は、パスワードのみによる認証を選択すればいいですし、Googleを信用して、携帯電話の番号を知られても良い人は、2段階認証を利用すると、より安全にGoogleのサービスを利用する事ができます。

図1、パスワードによる認証と2段階認証
↑ 画像をクリックすると拡大
図1、パスワードによる認証と2段階認証

2段階認証する場合は、パスワード以外に、Googleからショートメッセージで送られてきた数桁の数字を入力する事が求められる。

Googleにログインする度にショートメッセージの数字を入力するのは面倒なので、2段階認証するのは、新しいデバイスからGoogleにログインした場合などに限られる。

2段階認証をする場合は、ユーザー名とパスワードをログイン時に入力しなければならないだけではありません。ログイン時にGoogleから、乱数で決めた数桁の数字が書かれたショートメッセージが送られてきますから、その数桁の数字を正しく入力する必要があります。Googleに電話番号をあらかじめ通知してある携帯電話にショートメッセージが送られてきますが、その携帯電話は、正規のユーザーが持っているはずですから、パスワードを盗まれただけでは、第3者が正規ユーザーになりすましができないのです。

ただ、Googleのサービスを利用するたびに、2段階認証しなければならないのは面倒ですので、実際に2段階認証が必要になるのは、新しいデバイスからGoogleにログインする場合などに限られます。

3-2.2段階認証をしない場合のパスワード

2段階認証しない設定のユーザーは、リスト1MAIL_PASSWORD定数には、GmailのサイトあるいはGmailアプリでGmailにログインする際に入力するパスワードを設定します。(図2参照)

図2、MAIL_PASSWORD定数の宣言部分の書き換え(2段階認証を使わない場合)
↑ 画像をクリックすると拡大
図2、MAIL_PASSWORD定数の宣言部分の書き換え(2段階認証を使わない場合)

ただし、ESP8266(またはESP32)でメールを送る前に、Googleアカウントで設定しなければならない事があります。これからその設定方法について説明します。

まず、Googleアカウントにログインします。

図3、Googleアカウントのホーム画面
↑ 画像をクリックすると拡大
図3、Googleアカウントのホーム画面

個人情報保護のため、画像の一部にぼかし処理をしています。

すると、図3に示す様な画面になります。この画面で、セキュリティと書いてある部分をクリックしてください。

図4、セキュリティメニューの「安全性の低いアプリのアクセス」の項目
↑ 画像をクリックすると拡大
図4、セキュリティメニューの「安全性の低いアプリのアクセス」の項目

次に、セキュリティメニューの中から安全性の低いアプリのアクセスの項目を探し、アクセスを有効にすると書いてある部分をクリックしてください。(図4参照)

そうすると、図5の様な画面になりますから、安全性の低いアプリの許可と書いてある部分の右側のスライドスイッチの絵の部分をクリックして、スイッチが右に切り替わった状態にします。

図5、スライドスイッチの絵をクリックする
↑ 画像をクリックすると拡大
図5、スライドスイッチの絵をクリックする

以上で、ESP8266(またはESP32)を使ってメールを送信できる様になります。

ただし、安全性の低いアプリのアクセスを許可した状態では、セキュリティのレベルが下がった状態になりますから、2段階認証のないGoogleアカウントでESP8266(またはESP32)を使ってメールを送信をする場合は、普段使っているのとは違う、ESP8266(またはESP32)からのアクセス専用のアカウント(いわゆる捨てアカウント)を作り、そのアカウントを使って送信するべきでしょう。

3-3.2段階認証をする場合のパスワード

Googleアカウントが2段階認証をする設定になっている場合のMAIL_PASSWORD定数の設定方法について説明します。

まずGoogleに、ESP8266(またはESP32)でメールを送信する場合に使う、専用のパスワードを発行してもらう必要があります。

そのためには、Googleアカウントにログインします。

図6、Googleアカウントのホーム画面
↑ 画像をクリックすると拡大
図6、Googleアカウントのホーム画面

個人情報保護のため、画像の一部にぼかし処理をしています。

すると、図6の様な画面になります。この画面で、セキュリティと書いてある部分をクリックしてください。

図7、セキュリティメニューのGoogleへのログインの項目
↑ 画像をクリックすると拡大
図7、セキュリティメニューのGoogleへのログインの項目

次に、セキュリティメニューの中からGoogleへのログインの項目を探し、アプリパスワードと書いてある部分をクリックしてください。(図7参照)

図8、ログイン画面
↑ 画像をクリックすると拡大
図8、ログイン画面

個人情報保護のため、画像の一部にぼかし処理をしています。

そうすると、図8に示す様なログイン画面になりますので、Googleのログインパスワードを入力して、本人確認してください。

図9、アプリパスワードの設定画面
↑ 画像をクリックすると拡大
図9、アプリパスワードの設定画面

そうすると、図9に示す様な、アプリパスワードの設定画面が出てきます。アプリパスワードというのは、2段階認証できないデバイスからGoogleのサービスを利用する際に使う、特別のパスワードです。

参考:ESP8266等を使った組込機器は、2段階認証に必要な画面やキーボードを、多くの場合備えていないので、通常は2段階認証に対応していない機器となります。組込機器でも、画面やキーボード等を備え、その上でWEBページへのアクセスに対応してGoogleのサイトからログインしたり、あるいはGoogleのAPIに対応したソフトウェアを組み込めば、2段階認証ができます。

図10、アプリのドロップダウンリストでメールを選択
↑ 画像をクリックすると拡大
図10、アプリのドロップダウンリストでメールを選択

ESP8266(またはESP32)のメール送信用のアプリパスワードを発行してもらうには、まずアプリを選択のドロップダウンリストでメールを選択してください。(図10参照)

図11、デバイスのドロップダウンリストでその他を選択
↑ 画像をクリックすると拡大
図11、デバイスのドロップダウンリストでその他を選択

次に、デバイスを選択のドロップダウンリストでその他を選択してください。(図11参照)

図12、デバイス名の入力とアプリパスワードの生成
↑ 画像をクリックすると拡大
図12、デバイス名の入力とアプリパスワードの生成

そうすると、図12の様な画面になり、デバイス名の入力を求められますので、ESP8266と入力した後(ESP8266ではなくESP32を使う場合はESP32と入力した後)、生成ボタンをクリックしてください。

注:デバイス名は何でもいいのですが、ESP8266(ESP32)を用いて作ったメール送信器を想起する様な名前にしてください。

図13、発行されたアプリパスワード
↑ 画像をクリックすると拡大
図13、発行されたアプリパスワード

個人情報保護のため、画像の一部にぼかし処理をしています。

以上の作業で、図13の様に、16文字のアプリパスワードが発行されます。このアプリパスワードを、リスト1MAIL_PASSWORD定数に設定します。(図14参照)

図14、MAIL_PASSWORD定数の宣言部分の書き換え(2段階認証を使う場合)
↑ 画像をクリックすると拡大
図14、MAIL_PASSWORD定数の宣言部分の書き換え(2段階認証を使う場合)

なお、発行されたアプリパスワードは、ESP8266(ESP32)を使った特定の機器でメール送信をする場合にのみ使ってください。他の機器でもGoogleにログインしたい場合は機器ごとにアプリパスワードを発行してもらってください。

今回説明した方法で発行したアプリパスワードを使うと、2段階認証なしにGoogleのサービスを利用できる様になるので、セキュリティレベルは少し下がってしまいますが、アプリパスワードが漏洩しない様に十分に注意していれば、アプリパスワードの発行時に2段階認証による本人確認(あるいは以前2段階認証を受けたことのあるデバイスでの本人認証)を受けているので、2段階認証を受けたのと同様のセキュリティレベルを維持できます。

参考:アプリパスワードは、Googleが乱数を用いて決めますので、アプリパスワードが生年月日や住所などから推測される心配はありません。

アプリパスワード使用時に、セキュリティレベルを下げないためには、発行されたアプリパスワードをメモ等に記録しない事が重要です。

リスト1のスケッチを使ってメールを送信するためにアプリパスワードを使う場合なら、リスト1のMAIL_PASSWORD定数をアプリパスワードに書き換えてコンパイルし、それをESP8266(ESP32)に書き込んだら、スケッチのソースファイルを直ちに消去して、自分にもアプリパスワードが分からない様にしてしまうのがいいでしょう。アプリパスワードを知っているのは、使用する機器とGoogleだけという状態にして、自分を含む誰もがアプリパスワードを知らない様にしてしまうと、一番セキュリティが確保できた状態になります。

注:それでも、第三者がESP8266(ESP32)に触れる環境では、ESP8266(ESP32)のフラッシュメモリからアプリパスワードを読み取られる危険は残ります。

もし、スケッチを書き換えるなどしてアプリパスワードが必要になったら、それまで使っていたアプリパスワードは無効にして(Googleアカウントでこの手続きができます)、新しいアプリパスワードを発行してもらってください。

次のページでは、リスト1で使っているルート証明書の話をします。

目次へ  前のページへ (1) (2) (3) 次のページへ

このページで使われている用語の解説

関連ページ

Arduino 電子工作
このサイトの記事が本になりました。
書名:Arduino 電子工作
ISBN:978-4-7775-1941-5
工学社の書籍の内容の紹介ページ
本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。