ESP8266+Arduinoでメール送信

ESP8266+Arduinoでメール送信をするコードを書いたときの覚書です。
メール送信は通常SMTPサーバーに送信を依頼しますが、過去のスパムメール対策の結果SMTP認証(SMTP Authentication/SMTP-AUTH)が必須になりつつあります。
基本的な認証方式として、LOGIN,PLAIN,CRAM-MD5,DIGEST-MD5があるようです。
SMTPサーバーがどの様な認証に対応しているかは、SMTPサーバーに接続すると
250-AUTH PLAIN LOGIN
の様な形で認証対応できる方式を応答してきます。
他の独自認証方式が実装される場合もあるようです。
LOGIN認証はアカウント名、パスワードをBASE64でエンコードして送信します。


C:AUTH LOGIN
S:334 VXNlcm5hbWU6
C:dXNlcm5hbWU=
S:334 UGFzc3dvcmQ6
C:cGFzc3dvcmQ=
S:235 2.0.0 OK Authenticated

PLAIN認証は¥0+アカウント名¥0パスワードをBASE64でエンコードして送信します。


C:AUTH PLAIN
S:334
C:dXNlcm5hbWVwYXNzd29yZA==
S:235 2.0.0 OK Authenticated

PLAIN認証とLOGIN認証は、アカウント名とパスワードを単純にBASE64エンコードした文字列を認証に使用しているため、盗聴されるとアカウント名とパスワードが見られてしまいます。
SMTPサーバー環境に依存しますが、SMTP over TLS/SSL接続で使用することが望ましいです。

エラー処理もせず、英数字だけのメールを送るならば意外と簡単な手順でSMTPサーバー経由でメールを送れます。

カテゴリー: ESP8266, Internet関連 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください