『手抜き』E−年賀:概要

本ツールは、メールを年賀状代わりにしても然程問題ない相手に対して、年明けと同時に一斉送信することで済ませちゃおう! という、真にけしからん『手抜き』のために作成したものです。当ブログのコンセプトから、当初はコマンドプロンプトの Telnet を使用することを考えていましたが、Telnet を自動で操作する方法を見つけられませんでした。実は、内心ホッとしているんですが・・・ 

だって、Telnet っていえば最も基本的でハッキングにも使われるものですよ。それが私レベルで簡単に自動操作出来るようなら、ちょっと怖いですよ (^^;

それで、Visual Basic を使って作成しました。当ブログらしい点は、コマンドラインから実行し、マウス操作なしで全ての処理を完了する点ですかね? もちろん、それようの準備は必要ですが・・・。ひょっとして〜、アイコンをダブルクリックしてこの画面を見ていますか? 変な創りでゴメンナサイ。ここは Readme と Help を合わせたようなページです。以降に続く仕様を読んで準備し、コマンドライン、またはドロップ操作で実行してください。



仕様:動作環境

本ツールでは、メールを実際に送信する作業は Outlook Express に押し付けます。Windows に付属の機能として Outlook Express で検証しており、解説もこれに沿って行ないますが、基本的には MAPI 準拠 のメールクライアントであれば、動作は可能だと思われます。

また、Visual Basic を使用している関係上、VB ランタイム が必要になります。その他に、ActiveX コントロール MSMAPI32.ocx を必要とします。"Run-time Error" というメッセージが表示される場合には、これらのファイルが不足していますので、フルセットインストール版 をご利用ください。


仕様:構成

e_nycard.exe 本体実行ファイル
e_nycard.ini 動作設定ファイル
e_nycard.log ログ出力ファイル

実行に必要なファイルはこの3個です。これ以外に、送信先およびメッセージ内容を指定したリストファイル、メッセージのテンプレートファイルが必要になります。
リストファイルは引数として実行ファイルに渡し、テンプレートはリストファイルの中で指定することで参照されるようになります。


仕様:e_nycard.ini 動作設定ファイル

このファイルの中身は、配布の状態で次のような内容になっています。

[Config]
User Name=
Password=
Subst Key Word=NAME,KEN,GOBI

等号の右側(右辺)以外は変更しないでください。アプリがキーワードを正しく認識出来なくなります。また、NAME,KEN,GOBI は、参考用に記述してあるものです。利用目的に合うように編集してください。

User Name:Outlook Express に設定されているアカウントのユーザー名を指定します。
Password :User Name に対応するパスワードを記述します。
Subst Key Word:テンプレートに書き込む置換変数をカンマ区切りで指定します。

Outlook Express では、User Name で指定したアカウントに拘わらず、既定に設定されているアカウントを送信者に設定するようです。送信者として使用したいアカウントを既定に設定しておくようにしましょう。また、このファイルには Password が誰にでも読める状態で記述されることになります。実行ファイルと同一ホルダに保存されている必要があるので、複数のユーザーで使用している場合など、インストール場所を工夫するようにしてください。

Subst Key Word に指定した変数名は、メッセージのテンプレートファイル内で 半角 % で挟んで記述しておくことで、リストファイルのレコードで設定された、対応する文字列に変換されます。例えばテンプレートの記述が「%NAME%さん、%KEN%の天気はどう%GOBI%?」で、リストのレコードに「・・・@・・・・・・, ニックネーム,Template,田中,北海道,だべ」とあった場合、送信メッセージでは「田中さん、北海道の天気はどうだべ?」と展開されます。レコードの第4項目から順番に1対1対応します。対応する項目が設定されていない場合、空文字になります。また、半角 % を出力したい場合は %% と記述しておいてください。単独の 半角 % があった場合、置換変数を正常に取得出来なくなります。


仕様:メッセージテンプレートファイル

次のような書式で作成してください。

1行目を 件名 とする。63文字以内。それ以上は切り捨てられる。
2行目は空白行
3行目以降を本文として読み込み、置換の対象とする。

このバージョンでは、件名の変数による置換は行なわれません。


仕様:送信設定ファイル

次のような書式で作成してください。

1行目に e_nycard.exe の文字列を必ず含んでください。当アプリ用に作成されたファイルであるこの確認に使用します。この文字列が見つからない場合、処理を行ないません。 また、行先頭文字が 半角 % の場合はコメントとして無視します。有効な行であっても、行の接頭空白文字および末尾空白文字は無視されます。

各レコードは、カンマ区切りで次のように記述します。

送信先アドレス,表示送信者名,メッセージのパス,置換文字列1,置換文字列2,・・・

ここで指定された置換文字列に変数を含んでいても、2度目の展開は行なわれません。



当アプリの設定は、以上で完了です。

実行するには、コマンドラインで e_nycard.exe フルパスに 引数としてリストファイルのフルパス または e_nycard.exe から見た相対パスを指定します。リストファイルをドロップしても実行できますよ。

リストファイルを作成する場合、アドレス帳を csv 形式で出力しておくと便利ですよ。Excel の形式なのでダブルクリックしても保存されている形式は見れませんが、普通のテキストエディター(メモ帳など)で開いてみてください。各項目がカンマ区切りで記述されていることが判ると思います。コマンドプロンプトの for 文 を使って処理し易い形式ですよね。




outlook expless 設定

送信する作業はを Outlook Express に押し付けるのですから、こちらの設定も必要になります。注意する点は以下の4点(のハズ)です。

1 起動している必要は無い

2 送信者は既定で設定されているアカウントになる

3 「メッセージを直ちに送信する」になっていないと、送信トレイに保存されてしまう

4 「ほかのアプリケーションが渡しの名前でメールを送信しようとしたら警告する」
   になっていると、ダイアログが表示され、自動で完了できない。


2 については、前述のとおりです。3 と 4 は注意しましょうね。いざ自動で送信しようとしても、実際には処理が完了できない状態になりますので・・・

オプションの 送信タブ、セキュリティータブ で設定変更が可能ですよ。



さて、設定ファイルも出来た、テンプレートも出来た、後は送信するだけ・・・って言っても、実際に送信されるのか、どんな内容で送信されるのか不安ですよね。チェックする方法を考えましょう。

Outlook Express の送信トレイに保存されたメッセージが見れたら安心できませんか?

「メッセージを直ちに送信する」を逆に利用しましょう。この項目のチェックを外すことによって「送信トレイ」に保存させることが出来るようになります。そして・・・
一定の間隔で新着メッセージをチェックしている場合、運悪く送信トレイに保存されている間に接続が行なわれると、そのまま送信されちゃいますので、一時的にストップさせておくことをお勧めします。オプションの 全般タブ で変更してください。


さぁ、準備も整い、チェックも済んだ。あとは時間になったら実行するだけ?


いえいえ、2006/01/01 00:00 の時刻で送信するのなら、タイムスケジューラーに登録しておけばいいですよね。そうすればあとはパソコンが作業してくれます。

あッ、当日、電源を入れておくのを忘れないでくださいね (^^;



尚、お約束の一言ですが、このツールを使用した上でのいかなるトラブルにも、当方では一切の責任を負えませんので、自己責任の範囲内でご使用くださるようお願いします。

-------------------------------------
『手抜き』のための簡単プログラミング

 URL : http://tenukipg.seesaa.net/
-------------------------------------