Gmail経由でメールを送信するスケッチ
Macros | Functions | Variables
gmail.ino File Reference

Gmail経由でメールを送信するスケッチ More...

#include <WiFi.h>
#include <WiFiClientSecure.h>

Macros

#define SECURE_MODE
 SECURE_MODEを宣言すると、サーバー認証も行なう。コメントアウトすると、サーバー認証を省略する。プログラムは短くなるがセキュリティ的に甘くなる。
 

Functions

String base64 (String str)
 
void sendString (String str)
 
byte eRcv ()
 
void setClock ()
 
byte sendEmail ()
 
void setup ()
 
void loop ()
 

Variables

const char SSID [] ="yourSsid"
 Wi-FiのSSID。自分の環境に合わせて書き換える
 
const char PASSWORD [] ="yourPassword"
 Wi-Fiのパスワード。自分の環境に合わせて書き換える
 
const char MAIL_ADDRESS [] ="yourId@gmail.com"
 送信元のGmailのメールアドレス
 
const char MAIL_PASSWORD [] ="yourGmailPassword"
 送信元のGmailのパスワード
 
const char TO_ADDRESS [] ="sample@example.com"
 送信先のメールアドレス
 
const char MAIL_SUBJECT [] ="ESP8266/ESP32からのテストメール"
 メールの件名
 
const char MAIL_BODY [] ="This mail was sent form an ESP8266/ESP32.\r\nESP8266/ESP32からこんにちは。"
 メールの本文。改行する時には\r
を挿入する。行が半角ピリオド(.)で始まる時は、半角ピリオドを二重(..)にする
 
const char SERVER_NAME [] ="smtp.gmail.com"
 GmailのSMTPサーバーのURL.
 
const int SERVER_PORT =465
 GmailのSMTPサーバーへの接続に使うポート番号
 
const char ROOT_CERT []
 
WiFiClientSecure client
 SMTPサーバーとのTLS通信に使うクライアント
 

Detailed Description

Gmail経由でメールを送信するスケッチ

Function Documentation

◆ base64()

String base64 ( String  str)

文字列をBase64エンコードする。

Parameters
strエンコード前の文字列
Returns
エンコード後の文字列

◆ eRcv()

byte eRcv ( )

SMTPサーバーからの応答を待つ。10秒応答がなければタイムアウトする。 サーバーの応答をシリアルに出力する。 応答コードが400番以上なら、エラーと判断して0を返す。

Returns
400番未満の応答コードがSMTPサーバーから返れば1。400番未満の応答コードが返るかタイムアウトすれば0。

◆ loop()

void loop ( )

loop関数。何もしない。

◆ sendEmail()

byte sendEmail ( )

SMTPサーバーに接続し、メールを送信する。

◆ sendString()

void sendString ( String  str)

文字列をシリアルとSMTPサーバーに送信する。

Parameters
str送信したい文字列

◆ setClock()

void setClock ( )

NTPで時刻を取得してGMTで内蔵時計を合わせる。時刻の取得は、サーバー認証の際に、証明書の 有効期限が終わっていないかを確認するために必要になる。

◆ setup()

void setup ( )

setup関数。Wi-Fiに接続し、メールを送信する。

Variable Documentation

◆ ROOT_CERT

const char ROOT_CERT[]

Google Trust Services LLCのルート証明書。有効期間が2036年6月22日で終わるので、その日より後では、 SECURE_MODEをdefineしていると、このスケッチは動作しない。