Comments
Description
Transcript
目次 - 電子工作のための「飛石伝い」
CPU基板からメール送信をするには V004 2014/08/27 メール送信時に SMTP 認証を行ってメールサーバに接続するプログラムのサンプルを 「 Web で I/O 制御 」 の ページに掲載しました。 メールサーバ接続時に EHLO コマンド(Extended Hello : smtp サービス拡張機能を使用開始するためのコマンド)を使用します。 最近のほとんどのメールサーバは SMTP 認証を行うようになってきたため、本文で紹介している従来の HELO コマンドでは メール送信を行えなくなってきました。 今後は、「 Web(インターネット越し)で I/O 制御 」 のページを参照してください。 「Web で I/O 制御」のページに WiFi モジュール BP3591 を使用して、実際に CPU 基板からメール送信するプログラムを 掲載しています。 目次 1. 概要.........................................................................................................................................................................................................................................................................2 2. メールの流れ......................................................................................................................................................................................................................................................2 3. SMTP....................................................................................................................................................................................................................................................................3 1 1. 概要 「飛石伝ひ」において、WiFi モジュールとブロードバンドルータを使用して、どのようにしてメールの送信を行っているかを おおまかに説明します。 「Web で I/O 制御」のページに WiFi モジュール BP3591 を使用して、実際に CPU 基板からメール送信するプログラムを 掲載しています。 なお、「飛石伝ひアプリケーション」 において、“飛石” に “振舞い方” を設定してメールを送信する方法は、 「飛石伝ひアプリケーションの説明」 のページの 「飛石伝ひ 振舞い方の説明」 の “2.12.1. Mail送信” を参照してください。 2. メールの流れ メールはSMTPというプロトコルで送信します。 メール送信の流れは次の通りです。 1) 2) 3) 4) CPU基板はSMTPクライアントとなり、契約しているプロバイダのメールサーバ(A)にメールを送信します。 プロバイダのメールサーバ(A)は、宛先のメールボックスがあるメールサーバ(B)にメールを転送します。 メールを受け取ったメールサーバ(B)は宛先のメールボックスにメールを格納します。 メールの受信者がPOP3クライアントとしてメールボックスにアクセスしてメールを受信します。 SMTP CPU 基板 メール サーバ(A) SMTP メール サーバ(B) SMTP クライアント POP3 受信者 POP3 クライアント 図2. CPU基板が行う処理は 1) のSMTPクライアントとしてメールサーバ(A)にメールを送信する部分だけです。 2 3. SMTP SMTP(Simple Mail Transfer Protocol)は電子メールを送信するためのプロトコルです。 CPU基板はSMTPクライアントになり、メールサーバにメールを送信します。 メールの送信手順を以下に記します。 1) メール送信手順 SMTP クライアント SMTP サーバ メールサーバの URL から IP アドレス変換要求 メールサーバの IP アドレス Web DNS TCP クライアント接続(取得したメールサーバのIPアドレスに接続) 220 リプライ HELO コマンド 250 OK CPU 基板 メールサーバ MAIL FROM<mail Address> (送信者のメールアドレス) 250 OK RCPT TO<mail Address> (受信者のメールアドレス) 250 OK DATA + 送信通知 354 リプライ メールヘッダ + 本体 + .CRLF 250 OK QUIT コマンド 221 リプライ TCP 切断 図3. 1) 3 2) SMTPコマンド 表3. 2) コマンド名 HELO MAIL RCPT DATA RSET QUIT 機能 SMTP セッションの開始をサーバに通知する。 メッセージの送信者を通知する。(MAIL FROM) メッセージの受信者を通知する。(RCPT TO) メールデータを送信する。 現在のメールトランザクションを中止し、バッファをクリアする。 SMTP セッションの終了をサーバに通知する。 4 リプライコード 成功時 250 250 250 354 250 221 リプライコード 失敗時 552,451,452 550,553,450,451 451,554 500,501,502,421 500 改訂履歴 V001 2013/10/11 初版 V002 2014/06/10 改訂履歴の追加 V003 2014/08/21 メール送信時に認証についてのメッセージ追加 V004 2014/08/27 お知らせを追加 5