コントロールコマンド |
このページは XMail 付属の ctrlclnt(ctrlclnt.exe) コマンドによるコントロールコマンドについて説明します(全 OS 共通)。
なお、XMailCFG など、XMail に対応した管理ツールを使う場合、コントロールコマンドの使い方について詳細を知っている必要はありません。
ctrlclnt(ctrlclnt.exe) コマンドとコントロールサーバ
XMail 付属の ctrlclnt(ctrlclnt.exe) コマンドを使うと、XMail をネットワーク経由でコントロールすることができます。ctrlclnt コマンドは XMail のコントロールサーバモジュールと対話を行い、ユーザやドメイン、エイリアスの登録/削除など各種の管理作業を行います。
このコマンドは単体で動作し、フロッピーディスクに入れて持ち歩けるので、たとえば出先から会社の XMail を管理することもできます。ただし、SSL/TLS 対応コマンドの方はそれは無理ですが。
デフォルト動作の場合、ctrlclnt コマンドは XMail が動作しているホストの TCP/6017 または TCP/6018(SSL/TLS の場合) に接続します。よって、この通信ポートの使用が他のアプリケーションと競合しないようにしてください。
XMail の起動オプション -Cp(-CI でも可) または -Wp(-WI でも可) をレジストリに登録することでこのポート番号は変更することができます。詳細は "その他の参考情報" ページから "XMail 起動オプション" を参照してください。
なお、ctrlclnt コマンドは XMail が対応するすべての OS で同様に使用することができます。
ctrlclnt によって発行されるコマンド(コントロールコマンド)による XMail の管理には、もし非 SSL/TLS 環境で使用した場合にはセキュリティ上の弱点があることを理解しましょう。パスワードをはじめとするすべての情報が暗号化されずにネットワークを流れるからです。
インターネットのように、安全ではないネットワークにおいて XMail を管理する場合は SSL/TLS 接続を利用し、さらに設定ファイル MailRoot/ctrl.ipmap.tab でコマンドを受けつけるホストの IP アドレスを限定することをすすめます。あるいは、VPN(Virtual Private Network)環境でコントロールコマンドを実行することをすすめます。
コントロールコマンドのセキュリティについては "環境設定" ページまたは "セキュリティ" ページも参照してください。
コントロールコマンドは以下のように使います(プロンプトは省略しています)。
ctrlclnt -s (server) -n (port) -u (name) -p (pass) (コマンド) |
(server) の部分には XMail が動作しているホストのインターネットドメイン名または IP アドレスを指定し、(port) には TCP ポート番号を、(name) はシステム管理者の名前を、(pass) にはそのパスワードを、(コマンド) には、ユーザの追加/削除など、各種のコマンドを記述します(詳細は後述)。
特定のホストからのみ XMail を管理する場合は ctrlclnt -s (server) -n (port) -u (name) -p (pass) の部分はいつでも同じ内容になるので、短い名前のシェルスクリプト(バッチファイル)を作成してパスの通った場所に置いておけば、それに引数として (コマンド) を与えるだけで目的を達することができるようになります。
■SSL/TLSの利用
コントロールコマンドは SSL/TLS 接続で利用することができます。この場合、上記オプションに -S(TLS接続を行う場合)または -L(単なるSSL接続を行う場合) を追加する必要があります。ただし、SSL/TLS を利用する場合、そのための正しい環境がセットアップされている必要があります。詳細はセクション "SSLセットアップ" を見てください。
■コマンドの成功と失敗
ctrlclnt コマンドが接続するコントロールサーバは極めて寡黙です。コマンドが成功したときは何のメッセージも返しません。一方、何らかの原因でコマンドが失敗したときは、エラー番号とその簡易な内容とを返します。
なお、XMail の起動オプションとして -Cl を使用すれば、コマンドの成功についてはその事実がログファイルに記録されます(詳細は "環境設定" ページまたは "ロギング" ページを参照)。
■(コマンド) はタブ文字で区切る!!
前掲コマンドラインの (コマンド) 部分は複数の単語で構成されることが大部分ですが、それらの単語はタブ文字で区切る必要があります。これに対し、-s (server) -n (port) -u (name) -p (pass) の部分はスペース文字による区切りです。注意が必要です。
■直ちに有効になります!!
コントロールコマンドによる XMail に対する何らかのコマンド操作は XMail を再起動しなくても直ちに有効になります。たとえば、コントロールコマンドを使ってドメインやユーザを追加すると、それらは直ちに有効になります。
以下はドメインを管理するためのコマンドラインの一覧です。ただし、ドメインエイリアス関連については "エイリアスの管理" を参照してください。
なお、以下のコマンドラインでは ctrlclnt -s (server) -n (port) -u (name) -p (pass) がその先頭に省略されていることに注意してください。
■ドメインを追加する
domainadd domain |
このコマンドは XMail の設定ファイル MailRoot/domains.tab に新しいドメイン domain を追加します。domainadd と domain とはタブ文字で区切る必要があります(以降も同様)。
■ドメインを削除する
domaindel domain |
このコマンドは XMail の設定ファイル MailRoot/domains.tab から既存ドメイン domain を削除します。XMail 付属の Readme.txt にはコマンドを domainadd と書いていますが domaindel のミスです。
■既存ドメインの一覧を表示する
domainlist |
このコマンドは XMail の設定ファイル MailRoot/domains.tab に登録されているローカルドメインの一覧を表示します。
以下はメーリングリスト以外のユーザを管理するためのコマンドの一覧です。ただし、エイリアス関連については "エイリアスの管理" を参照してください。
■ユーザを追加する
useradd domain username pass U |
useradd コマンドは XMail の設定ファイル MailRoot/mailusers.tab に新しいユーザを追加します。domain に該当ユーザの所属ドメイン名を、username に新しいユーザの名前を、pass にそのパスワードを指定します。Uは該当ユーザのタイプ(一般ユーザであること)を示します。
■ユーザを削除する
userdel domain username |
userdel コマンドは XMail の設定ファイル MailRoot/mailusers.tab から既存ユーザを削除します。domain に該当ユーザの所属ドメイン名を、username に削除するユーザの名前を指定します。
■ユーザのパスワードを変更する
userpasswd domain username pass |
userpasswd コマンドは XMail の設定ファイル MailRoot/mailusers.tab 中の既存ユーザのパスワードを更新します。domain に該当ユーザの所属ドメイン名を、username にその名前を、pass に新しいパスワードを指定します。
■ユーザを認証する
userauth domain username pass |
userauth コマンドは指定したユーザが正しく認証できるかどうかをチェックします。domain に該当ユーザの所属ドメイン名を、username にその名前を、pass にそのパスワードを指定します。
■ユーザの関連情報を表示する
userstat domain username |
userstat コマンドは指定したユーザについての関連情報(エイリアス名の場合はその実アドレス、メールボックスサイズ、メールボックス内メッセージ数、最後のログイン IP)を表示します。domain に該当ユーザの所属ドメイン名を、username にその名前を指定します。
■ユーザの設定情報を表示する
uservars domain username |
uservars コマンドは該当ユーザのための設定ファイル user.tab の内容(氏名やメールボックスサイズの制限値など)を表示します。domain に該当ユーザの所属ドメイン名を、username にその名前を指定します。
■ユーザの設定情報を登録/更新する
uservarsset domain username varname varvalue ... |
uservarset コマンドは domain ドメインのユーザ username のための設定ファイル user.tab において、設定項目 varname の値を varvalue に設定します。
たとえば、dojo.jp ドメインの foo さんのメールボックスサイズを 20000KB(20MB) にしたい場合は以下のコマンドを実行することになります。
uservarsset dojo.jp foo MaxMBSize 20000 |
■ユーザリストを表示する
userlist domain username (1) userlist domain (2) userlist (3) |
userlist コマンドはユーザやメーリングリストの全部または一部を表示します。(1) は domain ドメインのユーザまたはメーリングリスト username を、(2) は domain ドメインの全ユーザと全メーリングリストを、(3) は全ドメインの全ユーザと全メーリングリストをそれぞれ表示します。ただし、domain、username にはワイルドカード文字が使えます。
メーリングリストについてのコントロールコマンドはユーザについてのものとほとんど同じです。
■メーリングリストを追加する
useradd domain listname pass M |
useradd コマンドは XMail の設定ファイル MailRoot/mailusers.tab に新しいリストを追加します。domain に該当リストの所属ドメイン名を、listname に新しいリストの名前を、pass にそのパスワードを指定します。Mは該当リストのタイプ(メーリングリストであること)を示します。
■メーリングリストを削除する
userdel domain listname |
userdel コマンドは XMail の設定ファイル MailRoot/mailusers.tab から指定リストを削除します。domain に該当リストの所属ドメイン名を、listname に削除するリストの名前を指定します。
■メーリングリストにメンバーを追加する
mluseradd domain mlusername mailaddress permission |
mluseradd コマンドは、domain ドメインのメーリングリスト mlusername に新しいメンバー mailaddress を追加し、その許可属性を permission にします。permission は権限の指定で、R で閲読のみを許可し、RW で投稿と閲読の双方を許可しますが、それらに A を追加すると、このメーリングリストへは SMTP 認証によってアクセスしなければならなくなります。
■メーリングリストからメンバーを削除する
mluserdel domain mlusername mailaddress |
mluserdel コマンドは既存リストから特定メンバーを削除します。domain ドメインのリスト mlusername から mailaddress で指定されるメールアドレスを削除します。
■メーリングリストのメンバー一覧を表示する
mluserlist domain mlusername |
mluserlist コマンドは既存リスト、domain ドメインのリスト mlusername のメンバー一覧を表示します。
■メーリングリストのパスワードを変更する
userpasswd domain listname pass |
userpasswd コマンドは既存リストのパスワードを更新します。domain に該当リストの所属ドメイン名を、listname にその名前を、pass に新しいパスワードを指定します。
■メーリングリストを認証する
userauth domain listname pass |
userauth コマンドは指定したリストが正しく認証できるかどうかをチェックします。domain に該当リストの所属ドメイン名を、listname にその名前を、pass にそのパスワードを指定します。
■メーリングリストの関連情報を表示する
userstat domain listname |
userstat コマンドは指定したリストについての関連情報を表示します。domain に該当リストの所属ドメイン名を、listname にその名前を指定します。
■メーリングリストの設定情報を表示する
uservars domain listname |
uservars コマンドは該当リストのための設定ファイル user.tab の内容を表示します。domain に該当リストの所属ドメイン名を、listname にその名前を指定します。
■メーリングリストの設定情報を登録/更新する
uservarsset domain listname varname varvalue ... |
uservarset コマンドは domain ドメインのリスト listname のための設定ファイル user.tab において、設定項目 varname の値を varvalue に設定します。
■メーリングリストを表示する
userlist domain listname (1) userlist domain (2) userlist (3) |
userlist コマンドはユーザやメーリングリストの全部または一部を表示します。(1) は domain ドメインのユーザまたはメーリングリスト listname を、(2) は domain ドメインの全ユーザと全メーリングリストを、(3) は全ドメインの全ユーザと全メーリングリストをそれぞれ表示します。ただし、domain、username にはワイルドカード文字が使えます。
エイリアス(別名)についてのコントロールコマンドは以下の通りです。なお、XMail ではユーザまたはメーリングリストのためのエイリアスとドメインのためにエイリアス(ドメインエイリアス)がサポートされます。
■エイリアスを追加する
aliasadd domain alias username |
aliasadd コマンドは XMail の設定ファイル MailRoot/aliases.tab に指定ユーザまたは指定メーリングリストの別名を追加/更新します。domain にエイリアス名が所属するドメイン名を、alias にエイリアス名を、username に既存ユーザまたは既存メーリングリストの名前またはメールアドレスを指定します。
■エイリアスを削除する
aliasdel domain alias |
aliasdel コマンドは XMail の設定ファイル MailRoot/aliases.tab から既存のエイリアス指定を削除します。domain に該当エイリアスの所属ドメイン名を、alias にエイリアス名を指定します。
■エイリアスリストを表示する
aliaslist domain alias username (1) aliaslist domain alias (2) aliaslist domain (3) |
aliaslist コマンドは XMail の設定ファイル MailRoot/aliases.tab 中の既存エイリアスの全部または一部を表示します。(1) は domain ドメインのエイリアス名が alias であり実ユーザ名または実メールアドレスが username であるものを、(2) は domain ドメインのエイリアス名が alias であるものを、(3) は domain ドメインの全エイリアスを表示します。ただし、domain、alias、username にはワイルドカード文字(*)を使うことができます。
■ドメインエイリアスを追加する
aliasdomainadd realdomain aliasdomain |
aliasdomainadd コマンドは XMail の設定ファイル MailRoot/aliasdomain.tab に既存ドメインのエイリアス名を追加します。realdomain に既存ドメイン名を、aliasdomain にそのエイリアス名を指定します。ただし、aliasdomain にはワイルドカード(*)を使うことができます。
■ドメインエイリアスを削除する
aliasdomaindel aliasdomain |
aliasdomaindel コマンドは XMail の設定ファイル MailRoot/aliasdomain.tab から既存のドメインエイリアス指定を削除します。aliasdomain にエイリアス名を指定します。aliasdomain にはワイルドカード(*)を使うことができます。
■ドメインエイリアスのリストを表示する
aliasdomainlist |
aliasdomainlist コマンドは XMail の設定ファイル MailRoot/aliasdomain.tab に存在するすべてのドメインエイリアス指定を表示します。
XMail はローカルユーザのために他の複数の POP サーバにアクセスし、そこからメッセージを取ってくることができます。これを本サイトでは "メールボックスの同期処理" と呼んでいます。
■同期処理の指定を追加する
poplnkadd loc-domain loc-username extrn-domain extrn-username extrn-password authtype |
poplnkadd コマンドは同期処理のための新しい指定を XMail の設定ファイル MailRoot/pop3links.tab に追加します。loc-domain に該当ローカルユーザ loc-username が所属するドメイン名を、extrn-domain に外部アカウントが存在する POP3 サーバのインターネットドメイン名または IP アドレスを、extrn-username にそのユーザ名を、extrn-password にそのパスワードを指定します。authtype には認証のタイプを指定し、クリアテキスト認証の場合は CLR に、APOP 認証の場合は APOP にします。
外部 POP3 サーバの指定には pop.hoge.com:8025 のようにサービスポートを含めることができます。
■同期処理の指定を削除する
poplnkdel loc-domain loc-username extrn-domain extrn-username |
poplnkdel コマンドは XMail の設定ファイル MailRoot/pop3links.tab から、loc-domain ドメインのユーザ loc-username について指定のうち、外部ドメインが extrn-domain でありそのユーザ名が extrn-username であるものを削除します。
■同期処理指定のリストを表示する
poplnklist loc-domain loc-username |
poplnklist コマンドは XMail の設定ファイル MailRoot/pop3links.tab に存在する loc-domain ドメインのユーザ loc-username についての同期処理の指定のすべてを表示します。
■特定の同期処理指定を有効にする
poplnkenable enable loc-domain loc-username extrn-domain extrn-username (1) poplnkenable enable loc-domain loc-username (2) |
poplnkenable コマンドは、XMail の設定ファイル MailRoot/pop3links.tab に存在する loc-domain ドメインのユーザ loc-username についての特定の指定(1)またはすべての指定(2)を有効にします。
カスタム処理(Custom Domain Mail Processing)の管理
カスタム処理については "コマンド実行機能" のページを参照してください。
■カスタム処理ファイルの内容を表示する
custdomget domain |
custdomget コマンドは、XMail の MailRoot/custdomains ディレクトリ内に domain ドメインのカスタム処理ファイルが存在すればその内容を表示します。
■カスタム処理ファイルを更新する
custdomset domain |
custdomset コマンドは、XMail の MailRoot/custdomains ディレクトリ内に domain ドメインのカスタム処理ファイルを作成します。既存のものがある場合はそれを更新します。コマンドを送信すると入力待ちになるので、コマンド行を1行ずつ入力して送信します。入力を終了させるにはドットを1個送信します。
■カスタム処理ファイルのリストを表示する
custdomlist |
custdomlist コマンドは、XMail の MailRoot/custdomains ディレクトリ内にカスタム処理のための設定ファイルが存在すれば、その一覧を表示します。
mailproc.tab ファイルについては "コマンド実行機能" のページを参照してください。
■mailproc.tab ファイルの内容を表示する
usergetmproc domain username |
usergetmproc コマンドは、domain ドメインのユーザ username のための mailproc.tab ファイルの内容を表示します。
■mailproc.tab ファイルを更新する
usersetmproc domain username |
usersetmproc コマンドは、domain ドメインのユーザ username のための mailproc.tab ファイルを作成または更新します。コマンドを送信すると入力待ちになるので、コマンド行を1行ずつ入力して送信します。入力を終了させるにはドットを1個送信します。
凍結メッセージとは、送信スケジュールが最終的に失敗し、XMail のスプールディレクトリ MailRoot/spool 内に保存されたままになっているメッセージです。
■凍結メッセージのリストを表示する
frozlist |
frozlist コマンドは現在の凍結メッセージの一覧を表示します。
凍結メッセージがサーバ上に存在すると以下のような応答が返ってきます。
"msgfile" (tab) "lev0" (TAB) "lev1" (TAB) "from" (TAB) "to" (TAB) "time" (TAB) "size" |
msgfile はメッセージファイル名、leb0 はスプール内の第一階層ディレクトリ名、lev1 はスプール内の第二階層ディレクトリ名、from は送信者アドレス、to はあて先アドレス、time はメッセージのタイムスタンプ、size はメッセージファイルのサイズ(バイト)を示します。各項目はタブ文字で区切られています。
■凍結メッセージを再送信する
frozsubmit lev0 lev1 msgfile |
frozsubmit コマンドは既存の凍結メッセージを再送信スケジュールします。再送が試みられるのはスプール内の lev0/lev1 ディレクトリ内にあるサブディレクトリ froz 内に存在する msgfile という名前のメッセージファイルです。
■凍結メッセージを削除する
frozdel lev0 lev1 msgfile |
frozdel コマンドはスプール内の lev0/lev1 ディレクトリ以下にあるメッセージファイル msgfile を削除します。
■凍結メッセージの処理記録を表示する
frozgetlog lev0 lev1 msgfile |
frozgetlog コマンドはスプール内の lev0/lev1 ディレクトリ以下にあるメッセージファイル msgfile についての処理の記録を表示します。
■凍結メッセージの内容を表示する
frozgetmsg lev0 lev1 msgfile |
frozgetmsg コマンドはスプール内の lev0/lev1 ディレクトリ以下にあるメッセージファイル msgfile の内容を表示します。
以下は、任意のファイルの内容を表示したり、それを新しい内容で置き換えたりするためのコントロールコマンドです。
■指定ファイルの内容を表示する
cfgfileget relative-file-path |
cfgfileget コマンドは、任意のファイル relative-file-path の内容を表示します。relative-file-path は、MailRoot ディレクトリからの相対パスです。
■指定ファイルを更新する
cfgfileset relative-file-path |
cfgfileset コマンドは、任意のファイル relative-file-path の内容を更新します。relative-file-path は MailRoot ディレクトリからの相対パスです。
コマンドを送信すると入力待ちになるので、コマンド行を 1 行ずつ入力して送信します。入力を終了させるにはドットを 1 個送信します。
■ファイルリストを表示する
filelist relative-dir-path match-string |
filelist コマンドは、XMail の MailRoot ディレクトリからの相対バスで指定されるディレクトリ relative-dir-path にある match-string にマッチするファイルの一覧を表示します。match-string にはワイルドカードが使えます。
■処理待ちになっているメッセージの送信処理を開始する
etrn email-match ...... |
etrn コマンドはスプール内で処理待ちになっているメッセージのうち、email-match にあてはまるあて先アドレスのものについて送信処理を開始します。email-match にはワイルドカードが使用でき、たとえば、*@*.mydomain.com のような指定ができます。また email-match は複数回指定することができます。
■何もしないコマンド
noop |
noop コマンドは具体的には何もしません。
■コマンドを終了する
quit |
quit は XMail のコントロールサーバとの接続を終了するコマンドです。
|