PHS経由でネットに接続できるEthernetアダプタのファームウェアをハック・中編 ―― LANにつないでメールの送受信と自動実行を実現
3) 環境に合わせてサンプル・ファイルを修正
転送したファイルを自分の環境に合わせて修正します.load Mainを実行し,2行目の宛先メール・アドレスと3行目の送信に利用するSMTPサーバ名の文字列を修正します.修正が終わったら,必ずsaveコマンドで編集結果を保存してください.問い合わせには[Y]キーで答えます.
次にSMTPAUTHを修正します.load SMTPAUTHを実行し,11行目にあるSMTP認証に必要なユーザIDと12行目にあるパスワードを変更します.このユーザIDとパスワードは,プロバイダによってさまざまです.プロバイダの設定ガイドなどを参考にして設定します.修正が終わったら,再びsaveコマンドで編集結果を保存してください.問い合わせには[Y]キーで答えます.
4) メール送信を実行する
runコマンドを入力すると,実行を開始します.前面のボタンを押すと,指定したSMTPサーバにアクセスしてSMTP認証を行い,指定のアドレスにメールを送ります.SMTPサーバが見つからない場合は,Svr?というエラー・メッセージが出ます.
メール送信中は画面にSMTPサーバから送信された文字列が表示されます.メールには,本機に割り当てられているIPアドレスが埋め込まれます.この機能を利用すると,W-SIMでダイアルアップ接続したOSX-1とクロス・ケーブルで接続した際に割り当てられているグローバルIPアドレスを把握できます.また,受信したメールのReceived:ヘッダを調べることでも,同じようにグローバルIPアドレスを調べることができます.
メールを送信できるようになれば,ゴールは目前です.Mainのソース・コードをリスト1に示します.コメントを参考にして,動作を把握してください.
SMTPAUTHはSMTPサーバとやりとりする部分です.リスト2を見ながら動作を理解してください.SMTPAUTHの先頭部分にはメールの差し出しアドレスや題名,本文が書かれています.各自の環境に合わせて変更してください.
BASE64は,SMTP認証に必要なBASE64のエンコード・ライブラリです.このファイルもテキストで書かれているので,参考として中を見てください.SilentCによる記述の柔軟性を理解していただけると思います.
● メールを受信すると自動返信するプログラムを作成
サイレントシステムのWebサイトから,サンプル3(OsxSample3.lzh)をダウンロードします.解凍すると,MainとPOP,SMTPAUTH,BASE64の四つのファイルが出てきます.このうちのSMTPAUTHとBASE64は,先ほどのサンプルとまったく同じ内容です.あらためて転送する必要はありません.MainとPOPの二つのファイルを本機に転送します.
1) サンプル・ファイルをOSX-1に転送
二つのファイルをC:\にコピーしてからコマンド・プロンプトを起動し,cd \を入力してカレント・ディレクトリをC:\に移動させます.続いて,以下のコマンドを実行して本機に転送します.
C:¥>tftp 192.168.0.100 put Main
C:¥>tftp 192.168.0.100 put POP
2) 環境に合わせてサンプル・ファイルを修正
転送したファイルを自分の環境に合わせて修正します.load Mainを実行して2行目のPOPサーバ名と3行目のSMTPサーバ名の文字列を修正します.修正が終わったら,必ずsaveコマンドで編集結果を保存してください.
次にPOPを修正します.load POPを実行して,9行目にあるPOP認証に必要なユーザIDと10行目にあるPOPサーバのパスワードを変更します.修正が終わったら,再びsaveコマンドで編集結果を保存してください.
3) メールの自動返信を実行する
runコマンドを入力すると,実行を開始します.1分に1度,POPサーバにアクセスしてメールが到着しているかどうかを調べます.もしメールが到着していたら,返信するメール・アドレスを取得して,そのアドレスにメールを送信します.メールには,本機に割り当てられているIPアドレスが埋め込まれます.実験が終了してメールを確実に送信することが分かったら,Mainの7行目にあるSleep(6000)という関数の引き数を30000に変更します.これにより,5分に1回の頻度でPOPサーバを見に行くことになります.
Mainのソース・コードをリスト3に示します.コメントを参考にして,動作を把握してください.POPは,POPサーバとやりとりするステート・マシンをカプセル化しています.POPのコメント付きのソース・コードをリスト4に示します.
すべてのライブラリは,テキストで書かれています.中を眺めてみてください.また,このプログラムを電源を投入した際に自動実行したいと考える読者の方も多いと思います.本機は組み込み機器として動作させるために自動実行モードが実装されています.