********************** *** SimpleMailSend *** ********************** 内容: コマンドラインから一発でメール送信(SMTP) 作者: Ichikawa Hiromitsu (京都大学工学部3年 ['00 2月現在]) 利用条件: 原則的に個人的な利用では、フリーソフト 個人的な利用でない場合や、何らかの商業的意味が伴う場合は、 必ず許可が必要です。 業務目的、システム管理に用いる場合には、必ず事前に許可が必要です。 配布条件: 個人的な配布は御自由に。 何らかの商業的意味が含まれている場合や、 不特定多数に配布する場合は、必ず事前に許可が必要です。 連絡先: email: h-i@bigfoot.com 動作可能OS: Win95/98/NT version: 1.11 配布ファイル: aboutSMSend.txt ... この説明書 SimpleMailSend.exe ... メール送信プログラム base64enc.exe ... ファイルを base64 encode するプログラム sj2jis.exe ... ファイルを S-JIS から JIS へ変換するプログラム (付属のプログラムの利用条件も、SimpleMailSend.exe に準じます) バージョン履歴: version 1.11: ('00 2月) Base64 encoding のプログラムを追加。 S-JIS から JIS への変換プログラムの追加。 version 1.1: ('00 1月) 複数の人に同じメールを送れるようにする。 これにより、コマンドラインの引数の順序の変更。 (Toとファイル名が逆転、注意してください。) version 1.0: ('99 8月) とりあえず完成版。 概要: コマンドラインからメールを送信するプログラム(SMTP Client)です。 送信に成功したかどうかの結果は、標準出力に一行で出力されます。 定時的に実行する場合や、大量のコマンドを別のプログラムから発行して、 送信する場合に、コマンドライン駆動型なので使いやすいと思います。 SMTP に接続できる環境(メールが送れる環境)が必要です。 詳細: 次のコマンドラインで実行してください。 Usage: SimpleMailSend [server(:port)] [from] [file] [to1] ([to2]...) server: メールサーバー(SMTP Server) port: メールサーバーのポート(省略時は 25 ) from: メール送信者のアドレス file: メールの本体の内容からなるファイル(Plain Text File) ただし、fileを "-" にした場合、標準入力の内容を送信します。 to: 送り先のアドレス 第 4 引数以降は、すべて送り先のアドレスと認識します。 同じメールを複数に送る場合には、複数指定できます。 もちろん、一つだけでも構いません。 実行後の出力: 有効なメッセージは、標準出力に出されます。 メッセージは、一つあたり一行で、次のようになっています。 -- から始まる行は、エラーを示す ++ から始まる行は、終了(エラーなし)を示す。 メールの約束事: (fileの内容) メールの本体は、ヘッダ部とメッセージ部に分けることができます。 ヘッダ部には、 From: "HOGE" To: "Ichikawa Hiromitsu" Subject: Test Mail Date: Fri, 13 Aug 1999 01:43:23 +0900 X-Mailer: SimpleMailSend MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 8bit などの情報が含まれます。大抵、From,To, Subject, MIME-Version Content-Type, Content-Transfer-Encoding あたりはあった方が無難です。 上の例は HOGEさんが 私に宛てたメールです。(もちろん架空です) To: は、メールのデータとしての To: です。実際に送られる相手先とは、 必ずしも一致しません。(例えば BCC は To: なしに複数に送る。) メッセージ部は、通常伝えるメッセージです。 ただし、半角かなは使ってはいけません。Content-Type の 内容 charset=ISO-2022-JP (JISコード) にあわせる必要があります。 ピリオド(.)のみの行は、(...) に置き換えます。 あまりにも長い行は、途中で切断します。 適切なところで改行を入れてください。 ヘッダ部とメッセージ部には必ず空行を入れてください。 すべて合わせると、次のような感じになります。 ----message.txt------- From: "HOGE" To: "Ichikawa Hiromitsu" Subject: Test Mail Date: Fri, 13 Aug 1999 01:43:23 +0900 X-Mailer: SimpleMailSend MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 8bit Hello! This is TEST MAIL! ---------------------- 実際には日本語も使うと思いますが、ここで JISコードのものを 書いても読めないと思いましたので、アルファベットのみの例にしました。 Windows 標準の Shift-JIS から JIS へ変換するためには、 「漢字コード変換ツール」が必要です。有名なところでは、 nkf があります。nkf32 を入手して、 C:\>nkf32 -j message.sjis.txt > message.txt のように変換します。 これを送るには、次のようにします。 C:\>SimpleMailSend your.mail.server "hoge@hoge.com" message.txt "h-i@bigfoot.com" です。 もちろん、パイプを使って、 C:\>nkf32 -j message.sjis.txt | SimpleMailSend your.mail.server "hoge@hoge.com" - "h-i@bigfoot.com" としても構いません。 ただし、タイトル部分(Subject:) は、JISに変換するだけでなく、 =?iso-2022-jp?B?(JISをBase64エンコードしたもの)?= の様に、JIS の変換後に Base64 の変換が必要です。 アルファベットのみの場合には、気にする必要はありません。 以上では、簡単な例を説明しましたが、メールの本体をすべて指定する (できる)という理由により、あらゆるメールを送ることができます。 plain text のみならず、Base64 でエンコーディングして、添付ファイル をくっつけたり、multipart を用いて、multipartな(意味不明?) メールを送ることもできます。 メールに関する詳細な資料は、RFC を参考にするか、 普段お使いのメールソフトで、送られてきたメールの 「メールのソースを表示」のような機能でどのようになっているのかを 調べることができます。 基本的に「メールのソースを表示」の部分を jis に変換して送信すれば、 全く同じものが送られるはずです。 分からない場合には、メールソフトで自分宛てに送ってみて、 メールソフトで受信したもののソースを使うのも一つの手でしょう。 (特に、添付ファイルを使う場合など) 付属プログラムの使い方: ・[base64.exe] バイナリファイルをBase64 エンコードして標準出力に出すソフト。 コマンドは、コマンドライン上から、 base64 [filename] と打ち込みます。 利用法は、標準出力のパイプを読み取るか、 リダイレクトでファイルに保存するか、といったところです。 ・[sj2jis.exe] S-JIS コードの文書を JIS コードに変換するソフト。 改行コードは変換せず、半角カナは ? に置き換えます。 コマンドは、コマンドライン上から、 sj2jis [filname] と打ち込み、結果は標準出力に出されます。 この二つのファイルとも、[filename] に "-" を指定すると、 標準入力からデータを読み込みます。 技術詳細: S-> 200 Welcome C<- HELO [HOSTNAME] S-> 200 Nice to Meet You! C<- MAIL FROM: [MAIL_FROM] S-> 200 Sender OK C<- RCPT TO: [RCPT_TO(1)] S-> 200 Reciever OK 必要なら RCPT TO を繰り返す C<- DATA S-> 300 DATA C<- [メール本体] C<- [ ] C<- . S-> 200 OK C<- QUIT S-> 200 BYE 以上。 ご利用に関して: 個人的なご利用であれば、フリーソフトとして扱ってください。 業務目的でご利用の場合、システム管理にご利用の場合には、 基本的にライセンス(有償)を必要とします。 ただし、このソフトを評価するために1ヶ月以内ならば、 試験的にご利用頂けます。 ライセンスを取得した場合、次のことに同意頂きます。 1. ご利用、もしくはご利用できないことによる、損害、不具合、不都合等 (直接、間接を問わず)に対して、作者は一切責任を負わないものとします。 ご利用される方の判断と責任でお願いします。 本格運用/ライセンス取得の前に十分のテストを行なってください。 2. バグ等の修正義務はないものとします。 また、機能追加等に関しても義務はないものとします。 3. お問い合わせ/質問に関して、こちらに回答の義務はないものとします。