MHPOPD(8) UNIX-OS Programmer's Manual MHPOPD(8) 名称 mhpopd, mhsmtpd - MH 形式メイルフォルダの配送サーバ 形式 mhpopd [ -hv ] [ -Displtd ] mhsmtpd [ -hv ] [ -Displtd ] 解説 mhpopd は、MH 形式のローカルメイルフォルダから POP3 経由でメ イル配送を行ないます。この時、設定されていれば MH コマンドの inc(1) や rmm(1) を用いてローカルメイルの制御を行ないます。 mhsmtpd は、SMTP 経由で受信したメッセージファイルを MH 形式 のローカルメイルフォルダに取り込みます。この時、設定されてい れば MH コマンドの send(1) を用いてメッセージファイルの配送 を行ないます。 オプション mhpopd, mhsmtpd の起動時には、以下の起動オプションを用いるこ とができます。 -h 起動オプション一覧を表示して終了します。 -v バージョンを表示して終了します。 -D デーモンとして起動しバックグラウンドで実行します。コマ ンドラインから起動された場合の既定値です。 -i 強制的にフォアグラウンドで実行します。 -s file サーバ設定ファイルを file に指定します。 -p port 使用するポート番号を port に指定します。 -l dir ログファイルが作成されるディレクトリを dir に指定します。 -t timeout クライアント入力のタイムアウトを timeout 秒に指定します。 -d debuglevel デバッグ用の冗長なログ出力を許可します。 debuglevel が 大きいほど多くの情報を出力します。 クライアント設定 クライアントプログラムの受信設定では、受信プロトコルの設定を 「POP3」または「APOP」にして下さい。ポート番号の既定値は 110 です。また、認証設定として「POP3 AUTH」を使うこともできます。 クライアントプログラムの送信設定では、送信プロトコルの設定を 「SMTP」にして下さい。ポート番号の既定値は 25 です。また、認 証設定として「SMTP AUTH」を選択する必要があります。 各ポート番号はサーバ設定で変更できますので、既定値以外の値を 設定した場合はクライアント側の設定もそれに合わせて下さい。パ スワードの項目には mhpasswd(1) コマンドで入力したパスワード 文字列を設定して下さい。 受信設定でサーバからメイルを削除するように設定した場合、サー バ側のパブリックシーケンスファイルの内容を書換えることにより、 MH フォルダの既読情報を変更します。更に、MH コマンドの rmm (1) 相当コマンドの起動が設定されていた場合には、サーバ側でそ のコマンドを実行することにより、指定されたメイルファイルを削 除します。 サーバ設定 mhpopd 及び mhsmtpd は、サーバ設定ファイルから各設定項目を読 込みます。起動オプション -s で指定しなかった場合のサーバ設定 ファイルは /etc/mhpopdrc になります。このファイルの各設定項 目は次の形式で記述する必要があります。 "profile-component: value" profile-component には以下に挙げる識別子を記述し、それぞれの 識別子で表される設定項目の値として value を記述して下さい。 profile-component に記述する識別子は大文字小文字を問いません。 value を記述しない場合は、その設定項目には値を指定しないと見 なされますが、特に記述のない設定項目に関しては、値を設定しな い設定行は無視されます。また、value が複数行に渡る場合は、継 続行の先頭文字を空白文字またはタブ文字で始めて下さい。 以下の各識別子の説明で、識別子名の後ろに「(MH)」と記述されて いる項目は、その識別子と同じ名前が MH のユーザプロファイル .mh_profile でプロファイルコンポーネントとして用いられている ことを表します。 Path (MH) 各ユーザの MH ディレクトリ名。「/」で始まっていな い場合は各ユーザのホームディレクトリ下のディレクト リと見なされます。ローカルメイルフォルダの基幹とし て用いられます。既定値は Mail です。 Inbox (MH) 各ユーザの inbox フォルダ名。MH ディレクトリ直下に 存在するフォルダで、inc(1) によってこのフォルダに メイルが取込まれます。既定値は inbox です。 Draft-Folder (MH) 各ユーザのドラフトフォルダ名。MH ディレクトリ直下 に存在するフォルダで、send(1) で使われる送信メッセ ージはこのフォルダ内のファイルとして作られます。値 が指定されない場合は、MH ディレクトリ直下の単一の ファイル draft を上書きして用います。既定値はあり ません。 mh-Path 各 MH コマンドが存在するディレクトリ名。必ず「/」 で始まっている必要があります。既定値は /usr/local/ bin です。 incproc (MH) rmmproc (MH) sendproc (MH) inc(1), rmm(1), send(1) として起動される MH コマン ド名。「/」で始まっていない場合は mh-Path で指定さ れるディレクトリ下のコマンドと見なされます。値が指 定されない場合は、それぞれの MH コマンドとして起動 するコマンドは存在しないと見なされます。既定値はそ れぞれ inc, なし, send です。 context (MH) 各 ユーザの MH コンテクストファイル名。MH ディレク トリ直下に存在するファイルで、カレントフォルダ名な ど動的に変化する情報が各 MH コマンドにより書込まれ ています。既定値は context です。 Msg-Protect (MH) 各ユーザのメッセージファイルモード。メッセージファ イルを新規作成する際のファイルモードを 8 進数で指 定します。既定値は 644 です。 Folder-Protect (MH) 各ユーザのフォルダディレクトリモード。フォルダディ レクトリを新規作成する際のファイルモードを 8 進数 で指定します。既定値は 711 です。 mh-sequences (MH) 各ユーザのパブリックシーケンスファイル名。MH ディ レクトリ内の各フォルダ直下に存在するファイルで、各 フォルダのカレントメッセージ番号が記述されています。 既定値は .mh_sequences です。 passwordfile 各ユーザの認証パスワードファイル名。「/」で始まっ ていない場合は各ユーザのホームディレクトリ下のファ イルと見なされます。POP3 及び SMTP のユーザ認証の 際に用いられるパスワードが記述されています。値が指 定されない場合は、認証パスワードファイルを用いませ ん。既定値は .mhpopdpass です。 incprompt inc(1) 用パスワードプロンプト。inc(1) がパスワード を要求してくる場合、そのパスワードプロンプトをシェ ル風のワイルドカードを用いて指定します。コマンドの 端末出力文字列の中からここで指定されたパターンにマ ッチする行が見つかると、passwordfile または my- passwd で指定されたパスワード文字列を自動的に応答 します。値が指定されない場合はコマンドに対して何も 応答しません。既定値はありません。 pickfile メイル振分け制御ファイル名。「/」で始まっていない 場合は各ユーザの MH ディレクトリ下のファイルと見な されます。inc(1) の実行後にメイル自動振分けを行な う際の基準を記述したファイルで、書式は後述のメイル 振分け制御ファイルに従います。値が指定されない場合 はメイルの自動振分けを行ないません。既定値は .pick です。 envpath MH コマンド用の環境変数 PATH の値。各 MH コマンド を起動する際に渡される環境変数 PATH の値を定めます。 値が指定されない場合は、環境変数 PATH を渡しません。 既定値はありません。 inc-timeout rmm-timeout send-timeout inc(1), rmm(1), send(1) を起動した際のタイムアウト。 各コマンドがここで指定された秒数以上応答がない場合 には、サーバはコマンドの終了を待たずに作業を先に進 めます。値として 0 を指定すると永久に待ち続けます。 余り大きな値を指定すると、コマンドの応答を待ってい る間にクライアントとの接続が切れてしまいますので気 をつけて下さい。既定値は 5 です。 pick-timeout メイル振分け制御ファイルに記述されたコマンドを起動 した際のタイムアウト。各コマンドがここで指定された 秒数以上応答がない場合には、サーバはコマンドの終了 を待たずに作業を先に進めます。値として 0 を指定す ると永久に待ち続けます。余り大きな値を指定すると、 コマンドの応答を待っている間にクライアントとの接続 が切れてしまいますので気をつけて下さい。既定値は 5 です。但し、記述されたコマンドがバックグラウンド実 行を指示されている場合は、この指定に拘らず永久に待 ち続けます。 pop3port smtpport mhpopd 及び mhsmtpd の使用するポート番号。既定値は それぞれ 110 及び 25 です。但し、起動オプション -p により上書きされます。 piddir サーバプログラムのプロセス ID ディレクトリ名。必ず 「/」で始まっている必要があります。実行中の mhpopd 及び mhsmtpd のプロセス ID 値が書込まれるプロセス ID ファイルが作成されるディレクトリを指定します。 プロセス ID ファイル名には各サーバプログラム名の後 ろに拡張子 .pid を追加した文字列が用いられます。但 し、サーバプログラムがルート権限で実行されていない 場合は、home-piddir による指定に従います。既定値は /var/run です。 home-piddir 一般ユーザ用に用いられるサーバプログラムのプロセス ID ディレクトリ名。「/」で始まっていない場合は各ユ ーザのホームディレクトリ下のディレクトリと見なされ ます。サーバプログラムが一般ユーザ権限で実行されて いる場合に、piddir の代わりにここで指定したディレ クトリが用いられます。値が指定されない場合は、実効 ユーザのホームディレクトリ直下にプロセス ID ファイ ルを作成します。既定値はありません。 logdir サーバプログラムのログディレクトリ名。必ず「/」で 始まっている必要があります。サーバログが書込まれる ログファイルが作成されるディレクトリを指定します。 ログファイル名には各サーバプログラム名がそのまま用 いられます。値が指定されない場合は、システムメッセ ージ以外のログは記録されません。既定値はありません。 但し、起動オプション -l により上書きされます。 maxlogsize サーバプログラムのログファイルサイズ。logdir で指 定されるディレクトリに作成されるログファイルの最大 サイズをキロバイト値で指定します。この値を越えると 直前のログファイルを拡張子 .old を追加したファイル 名に変更してから新たなログファイルを作成します。既 定値は 1024(1MB) です。 nosyslog syslogd(8) によるシステムメッセージのログを抑制し ます。値として yes または 1 の値を指定するとログフ ァイル以外のログは記録されません。既定値はありませ ん。 reportmail 報告メイルを配送するか否かを設定します。配送する場 合は、各配送対象メイルのパス名やサイズを報告するメ イルを生成し、他のメイルの最後に配送します。設定す る値は以下の文字列のいずれかに限ります。既定値は never です。 never 一切の報告メイルを配送しません。 nomail 他に配送すべきメイルが一つも存在しない場合に のみ報告メイルを配送します。 mail 配送すべきメイルが少なくとも一つは存在する場 合にのみ報告メイルを配送します。 any 常に報告メイルを配送します。 users-allow users-deny ユーザアクセス制御ファイル名。必ず「/」で始まって いる必要があります。アクセスを許可または拒否するユ ーザの一覧を記述したファイルで、書式は後述のユーザ アクセス制御ファイルに従います。値が設定されていな い場合は中身が空のファイルが指定されたものと見なさ れます。既定値は /etc/users.allow 及び /etc/users. deny です。 pop3-incapable 使用制限する POP3 コマンドの一覧。mhpopd に使用禁 止させる POP3 コマンド名を、空白文字またタブ文字で 区切って列挙します。設定するコマンド名は以下のいず れかに限ります。値が指定されない場合は、対応してい る全ての POP3 コマンドが使用可能になります。既定値 はありません。 user USER コマンド。 apop APOP コマンド。 auth AUTH コマンド。 login AUTH LOGIN コマンド。 plain AUTH PLAIN コマンド。 cram-md5 AUTH CRAM-MD5 コマンド。 smtp-incapable 使用制限する SMTP コマンドの一覧。mhsmtpd に使用禁 止させる SMTP コマンド名を、空白文字またタブ文字で 区切って列挙します。設定するコマンド名は以下のいず れかに限ります。値が指定されない場合は、対応してい る全ての SMTP コマンドが使用可能になります。既定値 はありません。 login AUTH LOGIN コマンド。 plain AUTH PLAIN コマンド。 cram-md5 AUTH CRAM-MD5 コマンド。 hostname サーバホスト名。サーバプログラムがクライアントプロ グラムに応答する際に名乗るホスト名を指定します。値 が指定されない場合は、サーバを起動した OS に設定さ れたホスト名を用います。既定値はありません。 mh-profile 各ユーザの MH のユーザプロファイル名。各ユーザのホ ームディレクトリ直下に存在するファイルで、MH 用の 各種パラメータが記載されています。値が指定されない 場合は、MH のユーザプロファイルを使いません。既定 値は .mh_profile です。 mhpopdrc 各ユーザのユーザ設定ファイル名。各ユーザのホームデ ィレクトリ直下に存在するファイルで、各ユーザ毎の設 定項目が記載されています。値が指定されない場合は、 ユーザ設定ファイルを使いません。既定値は .mhpopdrc です。 timeout クライアント入力のタイムアウト。クライアントからの 入力がここで指定された秒数以上途切れた場合には、サ ーバは一方的に接続を切断します。既定値は 30 です。 但し、起動オプション -t により上書きされます。 debuglevel デバッグレベル。デバック用の冗長なログ出力を許可し ます。数値が大きいほど多くの情報を出力します。値が 指定されない場合、もしくは値 0 を指定した場合は、 エラー情報以外は出力しません。既定値はありません。 但し、起動オプション -d により上書きされます。 ユーザ設定 mhpopd 及び mhsmtpd は、ユーザ認証に成功した直後に、サーバ設 定ファイルの設定項目 mh-profile 及び mhpopdrc で指定されるフ ァイルからユーザ設定情報をこの順で読込みます。MH のプロファ イルコンポーネントと異なる設定値を用いたい場合や、MH のプロ ファイルコンポーネントに存在しない設定項目を扱いたい場合は、 mhpopdrc で指定されるファイルに記述して下さい。 これらのファイルの書式はサーバ設定ファイルに準じ、profile- component には以下に挙げる識別子を記述して下さい。また、サー バ設定ファイルと同じ識別子の設定項目は、これらの設定ファイル により上書きされます。 Path Inbox Draft-Folder mh-Path incproc rmmproc sendproc context Msg-Protect Folder-Protect mh-sequences passwordfile incprompt pickfile envpath inc-timeout rmm-timeout send-timeout pick-timeout reportmail サーバ設定ファイルと同じです。 my-password ユーザ認証パスワード。ユーザ認証に用いるパスワード 文字列を平文テキストで記述します。値が指定されない 場合は、passwordfile で指定された認証パスワードフ ァイルを用いますが、passwordfile も指定されていな い場合は認証に失敗します。既定値はありません。 my-folders 転送する MH フォルダ名の一覧。mhpopd がクライアン トに転送する MH フォルダ名を、空白文字またはタブ文 字で区切って列挙します。値が指定されない場合は、 Inbox で指定されたフォルダのみを転送対象にします。 既定値はありません。 メイル振分け制御ファイル メイルの自動振分けはサーバ設定ファイルの設定項目 pickfile で 指定されたファイルにより制御されます。このファイルの記述に従 って、inc(1) 実行後 Inbox で指定されたフォルダの中から特定の メイルだけを指定されたフォルダに振分けます。 このファイルの書式はサーバ設定ファイルに準じ、profile-compo- nent には振分けたい先のフォルダ名を、value には振分けるメイ ルを選択するコマンド名と引数をそれぞれ記述します。コマンド名 が「/」で始まっていない場合は mh-Path で指定されるディレクト リ下のコマンドと見なされます。各引数は空白文字またはタブ文字 で区切りますが、引数の中にこれらの文字を用いたい場合は「\」 でエスケープするか「'」や「"」でクォートして下さい。振分け先 フォルダが複数ある場合はフォルダの数だけ行を列挙して下さい。 MH コマンド pick(1) を使う場合は、 "mymail: pick -from myname@mydomain" のような行を記述します。この例ではヘッダの「From:」フィール ド値が「myname@mydomain」であるようなメイルを全て「mymail」 フォルダに振分けています。pick(1) のオプション詳細は MH の各 ドキュメントを参照して下さい。pick(1) 以外のコマンドを使う場 合は、指定メイルのメッセージ番号を空白文字やタブ文字または改 行で区切った一覧を端末出力するような仕様になっている必要があ ります。 また、コマンド文字列が & で終わっていた場合は、そのコマンド をバックグラウンド実行するように指示されたと見なし、コマンド の終了を待たずに作業を先に進めます。この場合、このフォルダへ の振分け作業が始まる前に次のフォルダ用の作業が始まりますので、 バックグラウンド実行を指示するフォルダ記述はファイルの最後で 指定する方がよいでしょう。更に、このフォルダが my-folders で 指定されていた場合には、クライアントに転送対象ファイルを回答 する前にバックグラウンド実行が終了している保証はないので、振 分けた結果がクライアントに送られない可能性があります。クライ アントに転送するフォルダ記述にはバックグラウンド実行を指示し ない方がよいでしょう。 ユーザアクセス制御ファイル クライアントプログラムからのアクセスを許可または拒否するユー ザは、サーバ設定ファイルの設定項目 users-allow 及び users- deny で指定されたファイルにより制御されます。まず user-allow で指定されたファイルを確認し、これに記載されているユーザのア クセスは許可します。次に user-deny で指定されたファイルを確 認し、これに記載されているユーザのアクセスは拒否します。どち らにも記載されていないユーザのアクセスは許可します。 これらのユーザアクセス制御ファイルの各行は次の形式で記述しま す。 "server_name: user ..." server_name には mhpopd, mhsmtpd, ALL のいずれかの文字列を記 述し、どのサーバプログラムを対象としているかを指定します。 ALL は全てのサーバプログラムを対象としていることを表します。 user には対象となるユーザ名を空白文字またはタブ文字で区切っ て列挙します。もしユーザ名が @ で始まっていた場合には、@ に 続く名前のグループに属するユーザ全てを対象とします。また、ユ ーザ名 ALL は全てのユーザを対象としていることを表します。 環境変数 mhpopd 及び mhsmtpd は、以下の環境変数を各 MH コマンドに渡し て起動します。これら以外の環境変数は設定されないので、起動さ れるプログラム側に必要な環境変数があるようなら、プログラムを シェルスクリプトから起動するようにして、そのシェルスクリプト の中で環境変数を設定する必要があります。 PATH 設定項目 envpath で指定した内容。 USER 認証されたユーザのユーザ名。 HOME 認証されたユーザのホームディレクトリ名。 SHELL 認証されたユーザのログインシェル名。 著者 白井隆 。 関連ファイル /etc/mhpopdrc サーバ設定ファイル名の既定値。 /etc/users.allow /etc/users.deny ユーザアクセス制御ファイル名の既定値。 ~/.mh_profile MH のユーザプロファイル名の既定値。 ~/.mhpopdrc ユーザ設定ファイル名の既定値。 ~/.mhpopdpass ユーザ認証パスワードファイル名の既定値。 ~/Mail MH ディレクトリ名の既定値。 ~/Mail/.pick メイル振分け制御ファイル名の既定値。 関連事項 mh(1), inc(1), rmm(1), send(1), pick(1), mhpasswd(1), sys- logd(8) 著作権 Copyright (C) 2005-2019 by Takashi SHIRAI