POP Out - メールの受信と標準出力への出力 メールサーバからメールを受信し、標準出力に出力します。 ■前口上 Windows のコマンドラインで動くメール送信ソフトというのは、探せ ばいくつもあります。ところが、逆に、コマンドラインで動くメール受 信ソフトってほとんどないのですね。ま、そういうニーズが少ないとい うのもあるのでしょう。ただ、何か他のソフトと組み合わせると、思い もよらない使い方ができるかもしれません。ということで、試しに作っ てみました。 ■動作環境 Windows95/98/SE/ME/NT/2K/XP/Vista で動作すると思われます。 ただし、テストは WindowsXP でしか行われておりません。 コンパイルは Delphi4 Standard で行われております。 なお、レジストリは一切使っておりませんので、単にファイルを削除す るだけでアンインストール可能です。 ■使用法 Usage: PopOut [options] 32ビットな Windows 用のコマンドラインツールです。 メールサーバーにメールを取りにいき、受信したメールを標準出力に 出力します。当然、リダイレクションでファイルに保存することもでき ます。なお、サブジェクト等のメールヘッダおよびメール本文とも一切 デコードしないで出力しますので、別途利用者の責任においてデコード を実施してください。 オプションは大文字小文字を区別します。 現在、下記のオプションが有効です。 ・ -s : メールサーバ -s に続いてメールサーバを指定します。 例:-s pop.nifty.com ・ -u : メールアカウント -u に続いてメールアカウントを指定します。   (メールアドレスでは有りません) 例:-u toshiki ・ -p : メールパスワード -p に続いてパスワードを指定します。 例:-p password ・ -b : 区切り記号指定 -b に続いて指定した文字列を、各メールの先頭に表示します。複 数のメールを受信する際にデリミタとして使うことが可能です。 オプション指定方法の制限により、1バイト空白文字を含んだ区 切り記号を指定することはできません。 例:-b $$$D-Mail$$$ ・ -t : ネットワークタイムアウト値 -t に続いて指定した値をネットワークタイムアウト値とします。 単位は「秒」です。無指定時のデフォルト値は60秒です。 サーバの不具合や伝送経路の問題により、応答が著しく遅延した り、場合によっては欠落してしまうこともあります。そのような 場合、正常な応答を永久に待ってしまい、あたかもハングアップ のような状態に陥いってしまうので、指定した時間内に応答が帰 ってこなかった場合に、強制的にプログラムを終了させます。 例:-t 30 ・ -n : サーバ上のメールの通数表示 メールボックスに何通のメールがきているかだけを出力して終了 します。フラグオプションなので、引数はありません。 このオプションは -r、-m、-h、-d よりも優先度が高く、それら を同時に指定しても -n だけが有効となります。 ・ -r : メール番号 -r に続いて指定した番号のメールのみを受信します。 存在しない番号を指定したときの動作は不定です。 なお、複数のメールを同時に指定することはできません。複数回 指定した場合には、最後に指定したものが有効です。 例:-r 3 ・ -m : メッセージサイズ表示 メッセージのサイズだけを出力して終了します。フラグオプショ ンなので、引数はありません。また、-r を指定した場合、指定し たメールのサイズだけを出力します。 このオプションは -n よりも優先度が低く、同時に指定した場合、 -m の方が無視されます。ただし、-h や -d よりも優先度は高く、 それらと同時に指定した場合は -m が有効となります。 ・ -h : メールヘッダ表示 メールヘッダだけを出力して終了します。フラグオプションなの で、引数はありません。また、-r を指定した場合、指定したメー ルのヘッダだけを出力します。 このオプションは -n、-m よりも優先度が低く、同時に指定した 場合、-h の方が無視されます。 なお、-d を同時に指定してもサーバ上のメールは削除されません。 ・ -d : サーバ上のメールの削除 メール受信後、サーバからそのメールを削除します。フラグオプ ションなので、引数はありません。また、-r を指定した場合、指 定したメールのみを受信後、そのメールを削除します。 このオプションは -n、-m、-h よりも優先度が低く、同時に指定 した場合、-d の方が無視されます。 現在、メールを読まずに削除する手段は用意されておりません。 ・ -i : 設定ファイル指定 このオプションで指定した ini ファイルの [POPOUT] セクション からメールサーバ等のオションを読み取ります。このオプション を指定しないときには、コマンドラインで少なくともサーバ名、 ユーザ名、パスワードは指定しなければなりません。 以下は ini ファイルの記述例です。 [POPOUT] SERVER=pop.nifty.com USER=ABC12345 PASSWORD=mypass Boundary=$$$D-Mail$$$ GetHeaderOnly=0 GetMailSize=1 GetNumOnly=0 DelServerFile=0 NumOfRcv=3 Timeout=60 ■エラーレベル サーバと正常に接続できなかった場合や、接続後にタイムアウトが発 生した場合、エラーレベルに 1 を返します。 指定した番号のメールを正常に取得できなかった場合、エラーレベル に 2 を返します。 -d オプションが指定されている場合で、正しくメールを削除できなか ったときには、エラーレベルに 3 を返します。 POP による一連のシーケンスが全て正常に完了し、ファイルの出力が 成功した場合、エラーレベルに 0 を返します。 ■著作権、再配布等 一応、著作権は主張させていただきます。以下、本プログラム、およ びドキュメントを総称して「本プログラム等」と表します。 ・本プログラム等の著作権は としき が有します。 ・最新版は作者WEBサイト(http://www1.hinocatv.ne.jp/toshiki/) で公開される可能性があります。 ・本プログラム等を使用することにより、使用者の予期しない影響が あっても、作者はなんらの保証および補償をいたしません。 ・本プログラム等の転載、再配布、販売等は、事前に著作権者の許可 を求めなければ、自由にできます。 ^^^^^^^^^^^^ ただし、事前に許可を求められた場合は、原則として全てお断りい たします。なお、事後報告は歓迎いたします。 ^^^^^^^^^^ もちろん書籍、雑誌、CD−ROMへの収録も自由です。 なお、転載等を長期間継続するような場合でも、定期的な連絡・報 告などは不要です。また、1つのバージョンについて1ヶ所の転載 先に対し3回以上連絡があった場合、当該バージョンの転載中止を 要請することがあります。 ・著作者人格権の同一性保持権に基づき、本プログラム等の改変を自 由に行うことを許可します。というよりも、積極的な改変をお願い いたします。 ただし、改変した本プログラム等では、著作者人格権の氏名表示権 に基づき、原作者の著作権表示を消去することを要請します。 なお、差し支えなければ改変した部分をご連絡いただければ、次の バージョンからその改変内容を反映させていただきたいと思います。 ・転載等の際は、入手した本プログラム等のファイル構成に対し変更 を加えずに再配布してください。ただし、本プログラム等に改変を 加えた場合はこの限りではありません。 ・作者は、このプログラムに不備があっても、それを訂正する義務を 負いません。しかし、努力はするでしょうから連絡をお願いします。 ・仕様拡張に関する意見は、私の技術と体力と気力が許す範囲で対応 したいと思います。 ■改版履歴 version 1.00 2004-02-20 ・とりあえず動く version 1.01 2004-04-05 ・マニュアルの記述のみ修正(ソフト本体の修正なし) version 1.02 2005-05-20 ・コマンドラインから動くツールだというのにアイコンの付与 (機能的な修正なし) version 1.10 2009-12-15 ・-m オプション追加 ・.ini ファイルが正しく読めない場合があることへの対策 version 1.20 2011-01-20 ・-t オプション追加 ・きちんとエラーレベルを返すようにした