このデータは、BERKELEY SOFTWARE DESIGN, INC.のライセンスプログラムの一部です。プログラムの著作権は、BSDI、カリフォルニア大学理事会、マサチューセッツ工科大学、Free Software Foundation その他にあります。
popper(8) popper(8)
名前
popper - pop 3 サーバ
構文
/usr/etc/popper [ -d ] [ -k ] [ -K service] [ -s ] [ -S ] [ -t trace-file] [ -T timeout] [ -b bulldir]
説明
Popperは、さまざまなUnixで動作し、MacintoshやMS-DOSのコンピュータの電子メールを処理するPost Office Protocol(電子メール配送プロトコル)サーバの実装です。サーバはカリフォルニア大学バークレー校で開発され、RFC 1081およびRFC 1082における仕様に完全に準拠しています。
-d
このフラグはソケットをデバッグに設定し、デバッグをオンにします。デバッグ情報はsyslog(8)を使用して、すべて保存されます。
-t trace-file
このオプションはデバッグをオンにし、fprintf(3V)を使用して trace-fileにトレース情報を保存します。
-k
このフラグはpopperがKERBEROS定義の元でコンパイルされている場合、kerberos認証システムを使用可能にします。Kerberosをサポートするライブラリをあらかじめ必要とします。
-K service
このオプションはpopperがKERBEROS定義の元でコンパイルされている場合、kerberos サービスの使用を指定します。デフォルトでコンパイルされた時は"rcmd"で、"pop"が一般的です。
-s
このフラグはsyslog(8)を使用して、統計情報ロギングをオンにします。各 popperセッションの最後には、ユーザ名、削除メッセージ数、削除バイト数、サーバに残っているメッセージ数、サーバに残っているバイト数の情報が記録されます。
-S
このフラグはサーバモードをオンにします。このモードは、排他的に POPのみのユーザにサービスを提供するシステムでpopperを使用する場合に、ディスク I/Oやディスクスペースの使用を削減します。
-T timeout
このオプションは、popクライアントのセッションを終了するための、デフォルトでコンパイルされた値であるPOP_TIMEOUTを変更します。サーバがクライアントからのコマンドの到着を待っている場合、指定秒数後にタイムアウトし、セッションを終了します。このオプションにより、異常終了したクライアントからのコマンド入力をpopperプロセスが永遠に待ち続けてハングすることを回避できます。ネットワークの遅延が数秒以内の小〜中規模のネットには小さい値もokです。この場合、15〜30秒が適当です。パケット送信が大幅に遅延するネットワーク (たとえば SLIP リンク) ではもっと大きい値が必要です。このような場合は、300秒(5分)が適当です。
-b bulldir
このオプションは bulletin 機能をオンにし、bulletin ディレクトリパスを指定します。
掲示
掲示機能により、システム管理者は大量のメールを送信することなく、すべての POP ユーザに重要な告知を送信できます。掲示ディレクトリには、掲示ごとにファイルが1つあります。各ファイルには、ヘッダ付きの単一メールメッセージとメールボックスフォーマットの本文が含まれます。このような各掲示の最初の行は "From"行でなければなりません。システム管理者がこのような掲示を作成する最も簡単な方法は、応答が送信されて欲しいと思うアカウントを使用して掲示のコピーを自身にメールすることです。次に、メールプログラムを使用して、メッセージを掲示ディレクトリのファイルにメールボックスフォーマットで保存します。掲示ディレクトリは世界中で読めるものでなければなりません。
各掲示ファイルの名前は掲示番号で始まり、オプションで、他の文字を続けることもできます。たとえば、掲示番号23のファイル名は"23.pophost_down_sunday"になります。
popperは、各ユーザのホームディレクトリに .popbullという名前のファイルを作成します。このファイルには、ユーザが受信した掲示の最大の番号を記録する単一行が含まれます。
POPクライントがサーバに接続するたびに、ユーザがそれまでに受信していない新しい掲示がいずれも自動的にユーザのメールに追加されます。
掲示がコピーされる場合、"To" ヘッダ行は "To: username@thishost" に置き換えられ、"Status:" ヘッダ行はいずれも削除されますが、その他はそのままコピーされます。
新しいユーザが最初にメールをチェックすると、popper はユーザのホームディレクトリに .popbull ファイルを作成し、現在の最大掲示番号を付けます。したがって、新しいユーザは古い掲示を取得しません。
POPトランザクションサイクル
Berkeley POPサーバは(popperと呼ばれる)シングルプログラムで、POP TCPポートでサービス要求を取得するとinetdで起動します(RFC 1081 for POP version 3で指定されている公式ポート番号はポート110 です。しかし、POP3クライアントの中には、POP version 2のポートであるポート109にコンタクトを試みるものがあります。POP2とPOP3の両サーバを実行しているのでなければ、POP3サーバで両ポートの使用の定義をするだけです。この定義については、後のインストール方法で説明します)。popperプログラムは初期化し、IP アドレスに正規名がないクライアントに接続された時に、警告メッセージをログするピアIPアドレスがローカルドメインに登録されていることを確認します。BSD 4.3 Bindを使用するシステムの場合、正規名のクライアント検索で同じピアIPアドレスを返しているかどうかもチェックし、そうでない場合は警告メッセージをログします。
クライアントが、サーバのホストマシン上で有効な UnixユーザIDとパスワードを提供して自らを正しく識別する間、サーバは認証状態に入ります。この状態の間は (終了要求以外の) 他の交換は認められません。認証に失敗すると、警告メッセージが記録され、セッションが終了します。ユーザが認識されると、popperはそのユーザとグループidをユーザのものに合うように変更して、トランザクション状態に入ります。サーバは、以降の全トランザクションに使用するユーザのmaildropの一時コピーを作ります。メールの検索、削除、削除取り消しなどを行う たくさんのPOPコマンドが含まれます。クライアントが終了すると、サーバは最終更新状態に入り、ネットワーク接続が終了され、ユーザのmaildropが(可能な)変更された一時maildropで更新されます。
ロギング
POPサーバはsyslogを使用してアクティビティの記録をとります。BSD 4.3 sysloggingのシステム上では、サーバは(デフォルトでは)デバッグ以外のすべてのメッセージを優先順位"notice"で"local0"機能に記録します。デフォルトのログファイルは /usr/spool/mqueue/POPlogです。必要に応じて変更ができます。4.2 sysloggingのシステム上ではすべてのメッセージはローカルのログファイル、通常は、/usr/spool/mqueue/syslogに記録されます。
デバッグ
popperプログラムはinetd.confファイルにおいて、呼び出しの後に-dパラメータが指定されている場合、デバッグ情報を記録します。このオプションを使用するとsyslogファイルにかなりの出力が生じるので、注意が必要です。代替的に、"-t <file-name>"オプションではsyslogではなくfprintfを使用してデバッグ情報を "<file-name>"ファイルに記録します。
SunOS version 3.5の場合、popperプログラムは/etc/serversからのinetdで起動されます。このファイルではコマンドラインの引数を指定することはできません。したがって、デバッグを使用可能にする場合は、/etc/servers でシェルスクリプトをpopperの代わりに起動するように指定し、このスクリプトが目的の引数でpopperを呼び出します。
ポート 110 (またはセットアップによっては 109) に telnet するとPOP サーバが Unix 上で動作していることを確認できます。 たとえば、次のとおりです。
%telnet myhost 110 Trying...
Connected to myhost.berkeley.edu.
Escape character is '^]'.
+OK UCB Pop server (version 1.6) at myhost starting. quit
Connection closed by foreign host.
拡張
サーバは2つの拡張コマンドを実装しています。
XTND XMIT:
/usr/lib/sendmailを使用してメールメッセージを送信します。
XTND XLIST header [num]:
指定メッセージ番号の指定ヘッダ行を抽出し、返します。"num" パラメータがない場合は、現在、削除のマークが付けられていないすべてのメッセージのヘッダ行を返します。
ファイル
/usr/spool/mail メールファイル /etc/inetd.conf pop プログラム呼び出し /etc/syslog.conf ロギング仕様 ~/.popbull ユーザが見ることのできる最大 bulletin 数
参照
inetd(8)、RFC1081、RFC1082
作者
Bob Campbell、Edward Moy、Austin Shelton、Marshall T Rose、 and cast of thousands at Rand, UDel, UCI, and elsewhere
1990 年 8 月 4 日