組込み用デバイスサーバには簡単なメール送信機能(SMTP)がありますが、UDS1100/2100、WiBoxにはありません。
いずれにしても、シリアル装置側からメール送信プロトコル、メール受信プロトコルを実行するとメールの送信、受信が可能です。
これで携帯電話等からファィヤーウォール越しに機器のメンテ情報を取得、非リアルタイムの遠隔操作が行えます。メール本文に状態情報を付ける、日本語メールなど自由自在にお使い戴けます。 以下実施例を説明します。
実施例: デバイスサーバを前述のマニュアルコネクションモードにします。
マイコン/シリアル装置側からメールサーバのIPアドレス、ポート番号を指定して接続します。
・メールを受信するPOP3プロトコル
ポート番号110番を指定してPOP3サーバへ接続を実行、接続確認後、
USER [アカウント]、PASS[パスワード]、STATなどを応答の確認をしながら順々に送信すると
メールサーバ内の受信メール一覧を得られます。
RETR [メール番号]でメール内容を取得出来ます。
・メールを送信するSMTPプロトコル
ポート番号25番を指定してSMTPサーバへ接続を実行、接続確認後、
EHLO [クライアント側の名]、MAIL DROM:[送信元アドレス]、RCPT TO:[送信先アドレス]、DATA、
メール文面、QUITと応答の確認をしながら順々に送信するとSMTPサーバにて受理されます。
POP3、SMTPプロトコルにつきましては、それを説明したホームページ、解説書をご覧下さい。
まずはマイコンプログラムを作る前にマイコンの代わりにPCを繋いで、ターミナルからシリアル操作で
実際のメールの送受信を試して戴きますと簡単なプロトコルである事にお気づき戴けると思います。
デバイスサーバのAuto increment for active connect設定を有効にされる事を推奨します。
参1 シリアル側からデバイスサーバを通してメール着信有無を確認する場合の操作
C[IPaddress]/110[CR] (マニュアルコネクションにてメールサーバにログイン)
+OK login Message (POP3サーバからログインメッセージが来ます)
(ここでターミナルソフトの改行送信を[CR]から[CR+LF]に設定変更する)
USER abcdef[CR+LF] (USERコマンドを発行。ユーザ名が “abcdef”と仮定)
+OK Password required for abcdef. (正常に受付完了)
PASS ghijklmn[CR+LF] (パスワードを発行。パスワードが “ghijklmn”と仮定)
+OK abcdef has 16 visible messages (0 hidden) in 112705 octets. (正常に受付完了)
STAT[CR+LF] (STATコマンド発行)
+OK 16 112705 (メールサーバに16件メールが溜まっている事 と 情報量を確認)
QUIT[CR+LF] (POP3サーバから出る)
+OK Pop server at xxxmail.yyy.co.jp signing off.
POP3ではレスポンスの最初に+OKがあると正常受付です。-ERR と返る場合は異常です。
(CR=0x0d、LF=0x0a)
参2 シリアル側からデバイスサーバを通してメール送信する場合の操作
C[IPaddress]/25[CR] (マニュアルコネクションにてメールサーバにログイン)
(ここでターミナルソフトの改行送信を[CR]から[CR+LF]に設定変更する)
EHLO abcdef@test.co.jp[CR+LF] (接続の確立を行う)
250 abcdef.test.co.jp (受付け完了)
MAIL FROM:<mailto:abcdef@test.co.jp[CR+LF] (発信者の指定を行う)
250 2.1.0 Ok (受付け完了)
RCPT TO:<mailto:xxxx@bbbb.co.jp[CR+LF] (受信者の指定を行う)
250 2.1.5 Ok (受付け完了)
DATA[CR+LF] (メール内容送信開始を宣言)
354 End data with ・・・ (受付け完了。次の入力を催促)
From: Nissin taro <mailto:abcdef@test.co.jp[CR+LF] (メールの内容を指定開始)
To: xxxx@bbbb.co.jp[CR+LF]
Subject: title of mail[CR+LF]
Message-body[CR+LF]
[CR+LF]. [CR+LF] ([CR+LF]小数点=0x2e[CR+LF]で終了と指定)
250 2.0.0 Ok・・・ (受付完了)
QUIT[CR+LF] (SMTPサーバから出る)
221 2.0.0 Bye (ログアウト完了)
以上の操作でタイトルが「title of mail」、本文が「Message-body」のメールが送られます。
SMTPでは200、300番台が正常レスポンス、400、500番台がエラーを表します。
参3 IPアドレスではなく、ドメイン名を指定する方法も可能です。
(XPort/WiPort/UDS/WiBoxのFirmware6.6.0.0以降、MachPortAR/MachPortBG Pro/XPortAR)
参4 POPbeforeSMTPのセキュリティに対する対応
メールサーバでよく使われているセキュリティにPOPbeforeSMTPがあります。
これは参2で認証が無いためにスパム配信などにSMTPサーバを不正利用されるのを防ぐためにあります。
具体的には、POP3操作を行う事で一定時間内SMTPが利用可能となります。
この場合メール送信をするだけの場合でも、参1のPOP3操作し、参2のSMTP操作を行って下さい。
参5 日本語メールについて
日本語のメールを出す事自体は可能ですが、Windowsで使用する2byte文字(シフトJIS)は
使うことは出来ません。
Emailで使用する日本語はISO-2022-JPという方法が使われています。詳しくはISO-2022-JPを解説した
ホームページ、書籍をご覧下さい。
なお一般メールソフトで日本語を送ってパケットを確認する事でISO-2022-JPを調べる事無く送信すべき
データが分かります。
参6 実例紹介
トランジスタ技術誌 09年5月号 P233~の記事に本件を使用した実例が紹介されています。
ご参照戴けますと幸いです。
参7 別製品
LANTRONIX社の既存製品でプロバイダーのメールサーバーに投函する
機能を持った製品もございます。
xSensoという製品です。A/D変換値をメールする機能を持っております。
https://www.co-nss.co.jp/products/conectivity/xsenso.html