xmail.dojo.jp
 環境設定

このページでは XMail の基本的な環境設定について触れています。
なお、本ページの内容はバージョン 1.24 の XMail に対応しています。

なお、XMail に対応した管理ツールを使用すれば環境設定のほとんどすべてをグラフィカルに行うことが可能な場合があります。Windows NT/2000/XP/Vista/2003 環境の場合、XMailCFG を利用できます。その場合、とくに必要がなければこのセクション以降を見る必要はありません。


環境設定の方法(全 OS 共通)


XMail で環境設定を行うためには、大別して以下の 3 通りがあります。

  1. すべてを手作業で行う。

    専用の設定ツールを使わず、XMail に付属するコントロールコマンドも使わず、ただテキストエディタ一つで環境設定を行うのがこの方法です。

    この方法は、まず XMail 付属の readme.html(readme.txt) など多くの英文ドキュメントを注意深く読まなければなりません。また、OS 固有のサービスの制御法やコンソールコマンドの使い方を知らなければなりません。そして、それらの作業のあとに矛盾のない環境設定作業を行うことになります。これは、たとえあなたがパワーユーザであったとしてもかなり困難な作業になるでしょう。

    なお、XMail のすべての設定ファイル(.TAB)は、その改行コードが <CR><LF> でなければなりませんが、FreeBSD/Linux を含む UNIX 環境では標準の改行コードは <LF> なので注意してください。

  2. コントロールコマンドを使う。

    専用の設定ツールを使わず、テキストエディタと XMail 付属のコントロールコマンドのみを使って環境設定を行うのがこの方法です。

    この方法は前者よりは楽な道を行けますが、XMail のコントロールコマンドについて熟知している必要があり、また、設定ファイルの多くはテキストエディタを使って直接に編集をしなければならないので、やはりドキュメントをしっかりと読む必要があります。

  3. 専用の設定ツールを使う。

    インターネットには XMail の管理をグラフィカルに行うためのツールが多く公開されており、それを使って環境設定を行うのがこの方法です。本サイトで公開している XMailCFG もそのためのツールです。

    この場合、難解なドキュメントを読んだりコンソールコマンドを実行する苦労からは開放される可能性がありますが、どのツールを使うかによってあなたの作業量やあなたの XMail がどれだけの活躍をしてくれるかが決定されてしまうので、運用環境や利用目的、自分の技術レベルに合わせた慎重な選択をする必要があります。また、継続的なバージョンアップやメンテナンスが行われているツールであるかどうかにも注意が必要です。

  Top ↑

環境設定作業の概要(全 OS 共通)


XMail をインストール後、実際にそれを稼動させるために必要な作業の概要は以下の通りです。

  1. SSL/TLS 機能を利用するのであればそのための作業。
  2. 環境設定ファイル server.tab の適切な編集。
  3. システム管理者の登録。
  4. システムセキュリティの設定(管理者に対するアクセスコントロール)。
  5. アクセスコントロールの設定(SMTPリレーの設定など)。
  6. OS 固有の作業。FreeBSD/Linux/Solaris の場合は起動スクリプトや inet.d ファイルの編集など。Windows の場合は XMail サービスの登録、レジストリ情報の登録など。
  7. XMail の起動。
  8. ドメインやユーザ、メーリングリスト、エイリアスの登録。
  9. メールサービスの開始。
  10. 十分な動作テスト。

ただし、前項 "環境設定の方法" において "すべてを手作業で行う" 選択をした場合、XMail の起動はすべての作業が終了した最後に行う必要があります。また、サービスの開始後であっても、手作業でドメインやユーザ、メーリングリスト、エイリアスなどの追加・削除を行った場合はサービスを再起動する必要があります。

以降は個々の作業の説明です。

  Top ↑

SSL/TLS 関連作業(全 OS 共通)


XMail はバージョン 1.24 から SSL/TLS にネイティブ対応しました。 XMail の実装は大組織での本格運用にも耐えるものですが、一方で私的運用にも簡易に利用できるものになっています。

SSL/TLS のセットアップについては [SSLセットアップ] セクションを見てください。

  Top ↑

環境設定ファイル server.tab の編集(全 OS 共通)


MailRoot ディレクトリ(フォルダ)にあるファイル server.tab は XMail の環境設定ファイルです。XMail は、起動時に一度だけこのファイルを読み込みます。自分の環境に合わせ、適切に編集してください。

server.tab の最初の内容は以下のようになっているでしょう(1.24 版の場合)。

#
# Example configuration file.
# Note : remember to use _REAL_ TABs and " to format this file
#
"RootDomain" "xmailserver.test"
"SmtpServerDomain" "xmailserver.test"
"POP3Domain" "xmailserver.test"
"HeloDomain" "xmailserver.test"
"PostMaster" "root@xmailserver.test"
"ErrorsAdmin" "root@xmailserver.test"
#"TempErrorsAdmin" "send-failures@xmailserver.test"
#"DefaultSMTPGateways" "192.168.1.2,192.168.1.15"
"RemoveSpoolErrors" "0"
#"NoSenderBounce" "1"
#"DisableEmitAuthUser" "1"
#"NotifyMsgLinesExtra" "8"
#"NotifySendLogToSender" "0"
#"NotifyTryPattern" "1"
"MaxMTAOps" "16"
"ReceivedHdrType" "0"
"FetchHdrTags" "+X-Deliver-To,+Received,To,Cc"
#"SMTP-TLS" "0"
#"EnableCTRL-TLS" "1"
#"EnableSMTP-TLS" "1"
#"EnablePOP3-TLS" "1"
#"SmtpMsgIPBanSpammers" "550 Denied due inclusion of your IP in our spam lists"
#"SmtpMsgIPBanSpamAddress" "550 Denied due inclusion of your email address in our spam lists"
#"SmtpMsgIPBanMaps" "550 Denied due inclusion of your IP in the following map"
#"CustomSMTPMessage" "Please open http://www.xmailserver.test/smtp_errors.html to get more information about this error"
#"MaxMessageSize" "20000"
#"EnableAuthSMTP-POP3" "0"
#"Pop3SyncErrorAccount" "psync-errors@xmailserver.test"
#"AllowNullSender" "1"
#"AllowSmtpVRFY" "1"
#"AllowSmtpETRN" "1"
#"SMTP-MaxErrors" "4"
#"SmtpMinDiskSpace" "100000"
#"SmtpMinVirtMemSpace" "64000"
#"Pop3MinVirtMemSpace" "64000"
#"CustMapsList" "list.dsbl.org.:1,blackholes.mail-abuse.org.:1,dialups.mail-abuse.org.:0"
#"SMTP-RDNSCheck" "1"
#"CheckMailerDomain" "1"
#"SmartDNSHost" "dns.home.bogus.net:tcp,192.168.1.1:udp"
#"SmtpConfig" "mail-auth"
#"SmtpConfig-192.168.0.1" "mail-auth"
"DefaultSmtpPerms" "MRVZ"

どのエントリも "変数名"(TAB)"変数の値"(改行) という書式で、"変数の値" をあなたの環境に合わせて適切に設定します。(TAB) はタブ文字を意味します。先頭に # があるエントリは無効になっています(デフォルト動作になる)。

多くの設定項目がありますが、通常は行頭に # のない行を設定するだけで XMail は問題なく動作するはずです。また、この server.tab には SSL/TLS 関連のオプションを追加することができます。SSL/TLS の詳細はセクション "SSLセットアップ" を見てください。

server.tab の設定は以下の説明を参考にしてください。

"RootDomain"   "xmailserver.test"

xmailserver.test の代わりにあなたのメールサービスにおけるルートドメインの名前を指定します。これは、観察したところでは、XMail に対して他の SMTP クライアント(SMTP サーバまたはメールクライアント)からの接続交渉があったときに XMail が自分のドメイン名としてこの設定値を名乗っています。よって、ここには、サービス対象のドメインのうち外部に公開してもよいドメイン名を指定してください。

"SmtpServerDomain"   "xmailserver.test"

XMail は SMTP クライアントとのセッションの冒頭において 220 <1036894658.1892@dojo.jp> [XMail 1.24 ESMTP Server] service ready; Sun, 23 Dec 2004 11:17:38 +0900 というような応答をしますが、その自ドメイン名(dojo.jp)の部分を指定します。何も指定しなければ XMail がシステムコールによって取得した名前が入りますが、明示して指定しておいた方がよいでしょう。特定のドメイン名を強制したい場合などにもそれらを指定してください。

"POP3Domain"   "xmailserver.test"

xmailserver.test の代わりに POP 接続におけるデフォルトドメインを指定します。ここで指定したドメインに属するユーザについては POP アクセス時にユーザ ID のドメイン名部分を省略できます。というのも、XMail はマルチドメインに対応しており、たとえば somedomain.com ドメインの foo さんと otherdomain.net ドメインの foo さんとを区別するため、POP アクセス時のユーザ ID として「(ユーザ名):(ドメイン名)」を指定しなければならないからです。

"HeloDomain"   "xmailserver.test"

XMail は他の SMTP サーバに対する接続交渉を行うときの SMTP コマンド HELO 名または EHLO 名としてここに指定したドメイン名を名乗ります。この指定は、IP アドレスの DNS 逆引きを行う SMTP サーバとの接続では重要な意味を持つことがあるので、実際に逆引きが可能なドメイン名を指定した方がよいでしょう。何も指定しない場合、XMail はローカルコンピュータの IP アドレスについて逆引きを行い、得られた結果を使います。

なお、動的グローバル IP アドレス環境でメールサービスを行っている場合(いわゆる自宅サーバ)で外部へのメッセージ送信に失敗する場合、、HeloDomain に接続先プロバイダのドメイン名を指定すると問題が解決することがあります。

"PostMaster"   "root@xmailserver.test"

root@xmailserver.test の代わりにあなたのメールサーバの管理者(ポストマスター)のメールアドレスを指定します。ユーザ名には postmaster などがよく使われますが、使用可能な名前ならどんな名前にしてもかまいません。

"ErrorsAdmin"   "root@xmailserver.test"

XMail では、メッセージが最終的に配送エラーになると、その旨を送信元アドレス(Return-Path:アドレス)に通知しますが、ErrorsAdmin にメールアドレスを指定しておくと同じ内容の通知がそこへも送られます。

#"TempErrorsAdmin"   "send-failures@xmailserver.test"

一時的な配送エラーを管理者に通知する場合にそのあて先アドレスを指定します。ただし、メンバー数の多いメーリングリストなどでは大量の通知が発生する場合があるので、特に理由がない限りここは無効のままにすることをすすめます。

#"DefaultSMTPGateways"   "192.168.1.2;192.168.1.15"

XMail が送信するすべてのメッセージを他の特定のコンピュータ(ゲートウェイ)を経由させる場合に、エントリを有効にし(行頭の # を取る)、そのコンピュータのインターネットドメイン名または IP アドレスを指定します。複数のゲートウェイがある場合はセミコロンで区切って一続きに書きます。ゲートウェイを利用しない場合は空白にするか設定行を無効にします。

指定例:
192.168.0.1
192.168.0.1:8025
192.168.0.1,NeedTLS=2
192.168.0.1,NeedTLS=2,OutBind=192.168.10.2
192.168.0.1;192.168.2.10,OutBind=192.168.2.3

[NeedTLS オプション]
値を 1にするとリモートサーバに対して TLS 接続を試み、それに成功しない場合は非 SSL 通信を行います。値を 2にすると TLS 接続に成功しない場合は直ちに通信を終了します。
[OutBind オプション]
XMail のサーバが外部へのルートを持つ複数の IP アドレスを持っている環境で、特定 IP アドレスのインターフェースを利用して外部との通信を行う場合に利用するオプションです。

"RemoveSpoolErrors"   "0"

配送が最終的に失敗したメッセージを MailRoot/spool フォルダ以下に格納する場合は 0 に、ただちに削除する場合は 1 にします。デフォルトは 0 です。XMail では spool フォルダに格納した失敗メッセージを "凍結メッセージ" と呼びます。

#"NoSenderBounce"   "1"

配送エラー時の返送メッセージ送信時に sender アドレス(MAIL FROM:)としてヌルアドレス(空白)を使用する場合に値を 1 にします。 値が 0 の場合(デフォルト動作)、Postmaster 変数で指定するアドレスを使用します。

#"DisableEmitAuthUser"   "1"

SMTP 認証を利用して XMail の SMTP サービスを利用するユーザのメッセージにはデフォルトで X-Auth-User: というヘッダタグが付加されますが、これを付加しない場合は 1 にします。デフォルトは 0 です。

#"NotifyMsgLinesExtra"   "8"

メッセージの配送が失敗した場合、XMail はオリジナルメッセージのヘッダを添付してそのむねを送信者に通知しますが、このときオリジナルメッセージのボディ(本文)も通知メッセージに含める場合にその行数を指定します。何も指定しなければゼロを指定したことになります。すなわち本文は通知されません。

#"NotifySendLogToSender"   "0"

メッセージの配送が失敗した場合、XMail はそのむねを送信者に通知しますが、このとき配送リトライの記録を通知メッセージに含めるかどうかを指定します。1 で通知し、0 で通知しません。デフォルトは 1 です。

#"NotifyTryPattern"   "1"

メッセージの配送リトライが連続して失敗している場合に、その事実をどのように送信者に通知するかをリトライの回数で指定します。たとえば、1,3,5 と数値をカンマで区切って指定すると、1 回目と 3 回目、5 回目の配送エラーが送信者に通知されます。何も指定しない場合、最終的に配送エラーが失敗した場合(最終回)だけ通知が行われます。
メーリングリストなどでは大量の通知が発生する可能性があるので、特に理由がない限りここは空白にすることをすすめます。

"MaxMTAOps"   "16"

MTA(Mail Transfer Agent)による配送ステップの最大数を指定します。配送ステップがここで指定する数を超えた場合、XMail はそのメッセージがループしているとみなし、エラーメールとして処理します。デフォルト値は 16 です。とくに理由がなければデフォルト値のままにしましょう。

"ReceivedHdrType"   "0"

メッセージヘッダの Recieved: フィールド内に SMTP サーバまたは SMTP クライアントの IP アドレス情報をどう表示するかを以下のように数値で指定します。

0   クライアントの IP アドレスを表示しサーバのそれを表示しません。
1   両者の IP アドレスを表示します。
2   両者とも IP アドレスを表示しません。
3   0 の場合と同じですが、クライアントが認証済みである場合は表示しません。
4   1 の場合と同じですが、クライアントが認証済みである場合は表示しません。

"FetchHdrTags"   "+X-Deliver-To,+Received,To,Cc"

メールボックスの同期処理(ローカルユーザが他の POP サーバ上にアカウントを持っている場合にそこからメッセージを自動ダウンロードする機能)において、ダウンロードしたメッセージヘッダのどのフィールドからあて先アドレスを取り出すかを、+X-Deliver-To,To,Cc のようにカンマで区切って指定します。詳細は XMail 付属の Readme.txt から POP3LINKS.TAB の項を見てください。FetchHdrTags に何も指定しない場合、+X-Deliver-To,+Received,To,Cc が指定されたものとみなされます。

#"SmtpMsgIPBanSpammers"   "550 Denied due inclusion of your IP in our spam lists"

XMail のスパムホスト定義ファイル(MailRoot/spammers.tab)に定義された IP アドレスにマッチするホストから SMTP 接続があった場合、XMail はそれを拒否しますが、その際にクライアントに送るメッセージを "550 Denied due inclusion of your IP in our spam DB." のように指定します。空白でもかまいません。

#"SMTP-TLS"   "0"

XMail が他の SMTP サーバ(中継サーバ)に接続するとき、相手側が SMTP プロトコルの STARTTLS コマンドをサポートするかどうかを確認し、サポートする場合に SSL 通信を利用するかどうかを以下のように指定します。

0   STARTTLS コマンドを使わない。暗号化通信は行われません。
1   STARTTLS コマンドを送信し、相手先サーバがそれに対応する場合はその後 SSL/TLS 通信を行う。
2   STARTTLS コマンドを送信し、相手先サーバがそれに対応しない場合は接続を強制終了する。

#"EnableCTRL-TLS"   "1"

XMail のコントロールサーバに対する TLS(Transport Layer Security) による SSL 接続要求を受け付けるかどうかを選択します。受け付ける場合は 1 に、受け付けない場合は 0 にします。ただし、このエントリが無効の場合またはエントリそのものが存在しない場合の動作は 1 になるので注意が必要です。

このオプションが 0 であっても SSL による暗号化接続そのものは可能です。TLS は SSL に証明書ベースの認証を追加するものです。

#"EnableSMTP-TLS"   "1"

XMail の POP3 サーバに対する TLS(Transport Layer Security) による SSL 接続要求を受け付けるかどうかを選択します。受け付ける場合は 1 に、受け付けない場合は 0 にします。ただし、このエントリが無効の場合またはエントリそのものが存在しない場合の動作は 1 になるので注意が必要です。

このオプションを有効にする場合、クライアントアプリケーション(メーラ)でも TLS(STLS)に対応している必要があります。また、このオプションが 0 であっても SSL による暗号可接続そのものは可能です。TLS は SSL に証明書ベースの認証を追加するものです。

#"EnablePOP3-TLS"   "1"

XMail の SMTP サーバに対する TLS(Transport Layer Security) による SSL 接続要求を受け付けるかどうかを選択します。受け付ける場合は 0 に、受け付けない場合は 1 にします。ただし、このエントリが無効の場合またはエントリそのものが存在しない場合の動作は 1 になるので注意が必要です。

このオプションを有効にする場合、クライアントアプリケーション(メーラ)でも TLS(STARTTLS)に対応している必要があります。また、このオプションが 0 であっても SSL による暗号化接続そのものは可能です。TLS は SSL に証明書ベースの認証を追加するものです。

#"SmtpMsgIPBanSpammers"   "550 Denied due inclusion of your IP in our spam lists"

XMail は SMTP クライアントの IP アドレスがスパムアドレス定義ファイル(MailRoot/spammers.tab)にマッチした場合に接続を強制切断しますが、その際にクライアントに送るメッセージをサンプルのように定します。空白でもかまいません。

#"SmtpMsgIPBanSpamAddress"   "550 Denied due inclusion of your email address in our spam lists"

XMail は SMTP セッション開始時の MAIL FROM: の値がスパムアドレス定義ファイル(MailRoot/spam-address.tab)にマッチした場合に接続を強制切断しますが、その際にクライアントに送るメッセージをサンプルのように指定します。空白でもかまいません。

#"SmtpMsgIPBanMaps"   "550 Denied due inclusion of your IP in the following map"

XMail がブラックリストデータベース(SMTP 不正中継データベース、後記変数 CustMapsList を参照)を参照するように設定されている場合、XMail はブラックリストに存在する IP アドレスを持つホストからの接続を遮断しますが、その際に相手の SMTP クライアントに送るメッセージをサンプルのようにのように指定します。空白でもかまいません。

#"CustomSMTPMessage"   "Please open http://www.xmailserver.test/smtp_errors.html to get more informations about this error"

XMail が出力するエラーメッセージにユーザが作成したメッセージを付加するためのオプションです。512 バイト以内で任意の内容にすることができますが、日本語を使う場合は JIS コードで記述した方がよいでしょう。

#"MaxMessageSize"   "20000"

最大メッセージサイズをキロバイトで指定します。有効な数値を指定すると XMail はすべての受信メッセージのファイルサイズをチェックするようになり、指定値よりも大きいものについては SMTP セッションを強制終了させます。ただし、メッセージサイズのチェックは個別のユーザやメーリングリストに対して行うこともできます。

#"EnableAuthSMTP-POP3"   "0"

SMTP after POP(POP before SMTP)を有効にするかどうかを選択します。デフォルトは 1(有効) です。SMTP after POP は、SMTP 接続の前に POP 接続を行い、認証に成功したユーザ(コンピュータ)からの SMTP 接続であれば、たとえ SMTP リレーの許可がないコンピュータからの接続であっても一定時間(デフォルトの有効時間は 900 秒)に限りそれを許可するもので、ダイヤルアップでインターネットを利用しているユーザにメールサービスを提供するためなどによく利用されます。

#"Pop3SyncErrorAccount"   "psync-errors@xmailserver.test"

メールボックスの同期処理に失敗した場合(ローカルアカウントのメールボックスが存在しない場合など)のエラーメッセージの送信先アカウントを指定します。psync-errors@xmailserver.test の部分を適切なローカルアドレスにします。

#"AllowNullSender"   "1"

SMTP サーバへのアクセスがあったとき、もしも Sender アドレス(SMTP セッション時の MAIL FROM:アドレス)が空であった場合に、接続を拒否するかどうかを指定します。デフォルトは 0(拒否)です。

#"AllowSmtpVRFY"   "1"

このエントリを有効(1)にすると、SMTP 認証接続においてクライアントが SMTP VRFY コマンドを使えるようになります。このコマンドは送信先ユーザが存在するかどうかをメッセージ送信に先立って確かめるものです。

#"AllowSmtpETRN"   "1"

このエントリを有効(1)にすると、SMTP 認証接続においてクライアントが SMTP ETRN コマンドを使えるようになります。このコマンドはメッセージのキュー処理を解除できるようにするもので、おもにダイヤルアップ接続などで使われます。/p>

#"SmtpMaxErrors"   "4"

SMTP セッションにおいて、クライアントによる各種のエラー(構文エラーなど)を何度まで許容するかを指定します。0(または空白)以外の数値を指定すると、エラー回数がその値に達したとき XMail はセッションを強制終了させます。

#"SmtpMinDiskSpace"   "100000"

XMail の SMTP サーバへクライアントから接続があったとき、それに先立って XMail がローカルディスクの残容量をチェックするかどうかを指定します。エントリを有効にして数値(単位はキロバイト)を指定するとチェックを行い、残容量がそれよりも小さい場合は接続を強制終了します。

#"SmtpMinVirtMemSpace"   "64000"

XMail の SMTP サーバへクライアントから接続があったとき、それに先立って XMail が仮想メモリの残容量をチェックするかどうかを指定します。エントリを有効にして数値(単位はキロバイト)を指定するとチェックを行い、残容量がそれよりも小さい場合は接続を強制終了します。

#"Pop3MinVirtMemSpace"   "64000"

XMail の POP サーバへクライアントから接続があったとき、それに先立って XMail が仮想メモリの残容量をチェックするかどうかを指定します。エントリを有効にして数値(単位はキロバイト)を指定するとチェックを行い、残容量がそれよりも小さい場合は接続を強制終了します。

#"CustMapsList"   "list.dsbl.org.:1,blackholes.mail-abuse.org.:1,dialups.mail-abuse.org.:0"

ブラックリストデータベース(SMTP 不正中継データベース)を参照する場合にサンプルにように指定します。1 つの指定は
    (データベースサーバ名).:(0 または 1、あるいは遅延秒数を指定。0 の場合は認証済みユーザのみ送信を受け付け、1 の場合は直ちに接続を拒否、負数の場合はクライアントとの接続交渉時に遅延処理を実行)
となり、カンマで区切って複数の指定を行うことができます。指定ミスをすると XMail の動作に不具合が出る可能性があります。

#"SMTP-RDNSCheck"   "1"

SMTP 接続交渉にあたり、クライアントが名乗るドメイン名(MAIL FROM: <***@domain> の domain)について XMail が DNS の逆引きを行い、IP アドレスが得られなかった場合の対応を指定します。

0 を指定するとチェックを行いません。1 でチェックを行い、必要な情報が得られない場合は直ちに接続を拒否します。また、-8 のように負数を指定すると、必要な情報を得られない場合、接続自体は許可しますが SMTP コマンドごとに指定秒数の遅延処理を行います。

#"CheckMailerDomain"   "1"

XMail の SMTP サーバにクライアントが接続してきたとき、クライアントが名乗る MAIL FROM:<...@xxx> のドメイン名(xxx の部分)につい て DNS の MX リソースレコードが得られるかどうかをチェックします。もしそれが得られなければ接続を拒否します。デフォルトは 0(チェックしない)です。

#"SmartDNSHost"   "dns.home.bogus.net:tcp,192.168.1.1:udp"

XMail から利用するネームサーバ(DNS サーバ)があればそれを指定します。ネームサービスでは TCP/53 と UDP/53 とを使って通信を行うので、それぞれのプロトコルごとに指定します。たとえば、XMail と ネームサーバとが同じコンピュータ上にセットアップされている場合、SmartDNSHost 127.0.0.1:tcp,127.0.0.1;udp となります。

ただし、インターネットに常時接続された環境で XMail を使う場合はこのエントリは無効のままにしてもかまいません。この場合、XMail は MailRoot/dnsroots ファイル(簡易版のルートサーバリストファイル)を参照し、ルートサーバに問い合わせを発するからです。当然、XMail をインターネットに接続せずにドメイン名を使用するメールサービスを行う場合は、ここに適切な設定を行う必要があります。

#"SmtpConfig"   "mail-auth"

これは、SMTP サーバへの接続時に認証を必須にするためのエントリで、これが有効である場合、すべてのメールクライアントアプリケーションや SMTP サーバ(本当はクライアント)からこの XMail に接続する時に認証が必要となります。ただし、現在のインターネット環境ではそのような利用法は一般的ではありません。

#"SmtpConfig-192.168.0.1"   "mail-auth"

このエントリについては現在調査中です。

"DefaultSmtpPerms"   "MRVZ"

このエントリでは、SMTP サーバへの接続で認証を通過したクライアントに対してどれだけの権限を与えるかを指定します。値には MRVSTZ のどれかまたはそれらの組み合わせが入ります。

M は、XMail 付属の readme.txt に open mailing features という記述がありますが、それが具体的に何を意味するのか情報がありません。R は、そのユーザに SMTP リレー制限をバイパスさせます。V は SMTP VRFY コマンドを許可し、S は XMail の利用にあたり SSL クライアント証明をバイパスさせます。T は SMTP ETRN コマンドを許可します。Z は変数 MaxMessageSize によるメッセージサイズのチェックを行いません。

server.tab サンプル

以下はいくつかのサンプルです。ただし、デフォルトと異なるエントリのみを表示しています。

■サンプル #1
dojo.jp ドメインの代表メールサーバをインターネットに常時接続し、プロバイダからインターネットに入ってこのメールサーバを利用するユーザのために SMTP after POP3(POP before SMTP)を利用可能にする環境。

"RootDomain"   "dojo.jp"
"POP3Domain"   "dojo.jp"
"HeloDomain"   "dojo.jp"
"PostMaster"   "postmaster@dojo.jp"
"EnableAuthSMTP-POP3"  "1"

■サンプル #2
インターネットに接続しない dojo.local ドメインで、XMail とネームサーバとが同居する環境。

"RootDomain"   "dojo.local"
"POP3Domain"   "dojo.local"
"PostMaster"   "postmaster@dojo.local"
"SmartDNSHost"   "127.0.0.1:tcp,127.0.0.1:udp"

■サンプル #3
インターネットとイントラネットとがゲートウェイ(プロキシーサーバなど)を介して接続されているとき、イントラネット側の dojo.local ドメインで XMail を使う場合で、ネームサーバが 192.168.1.10 であり、インターネット向けのメールは SMTP ゲートウェイ 192.168.1.200 を経由して送る環境。

"RootDomain"   "dojo.local"
"POP3Domain"   "dojo.local"
"HeloDomain"   "dojo.local"
"PostMaster"   "postmaster@dojo.local"
"DefaultSMTPGateways"   "192.168.1.200"
"SmartDNSHost"   "192.168.1.10:tcp,192.168.1.10:udp"
  Top ↑

システム管理者の登録(全 OS 共通)


次に、設定ファイル MailRoot/ctrlaccounts.tab にシステム管理者を登録します。ここで言うシステム管理者とは、XMail 付属のコントロールコマンドを使って XMail を管理するユーザのことです。

MailRoot/ctrlaccounts.tab の個々のエントリは以下のフォーマットです。

"管理者名" (TAB) "管理者の暗号化パスワード"

たとえば、管理者 xmailadmin さんをパスワード foopassword で登録する場合は以下のようになります。

"xmailadmin" (TAB) "foopassword を暗号化した文字列"

パスワードの暗号化は、XMail 付属の xmcrypt コマンドを使います。 コマンドコンソール(コマンドプロンプト)で以下のように実行してください。

xmcrypt foopassword

これで標準出力に暗号化文字列が表示されます。それを ctrlaccounts.tab ファイルに書き込みます。 しかし、以下のようにするとファイル pass.txt に暗号化バスワードが出力されるので、文字列のコピーアンドペーストができます。

xmcrypt foopassword>pass.txt

結局、ctrlaccounts.tab ファイルの内容は以下のようになります。

"xmailadmin" (TAB) "030a0a15041616120a1701"

セキュリティのために、ユーザ名やパスワードはできるだけ長いものにしましょう。また、管理者の数はできるだけ少なくしまょう。許されるならただ一人の管理者を登録するべきです。また、ここで登録する管理者は XMail のメールアカウントを持っている必要はありません。

  Top ↑

システムセキュリティの設定(全 OS 共通)


次に、設定ファイル MailRoot/ctrl.ipmap.tab でシステム管理におけるアクセスコントロールの設定を行います。 具体的には、どのコンピュータからコントロールコマンドによる XMail へのアクセスを許すかを指定します。 すなわち、ここでの設定はセキュリティ上非常に重要です。

MailRoot/ctrl.ipmap.tab の個々のエントリは以下のフォーマットです。

"IPアドレス" (TAB) "ネットマスク" (TAB) "許可または拒否" (TAB) 優先度

たとえば、Windows 対応のバイナリパッケージに含まれる ctrl.ipmap.tab には以下のエントリが一つだけあります。

"0.0.0.0" (TAB) "0.0.0.0" (TAB) "ALLOW" (TAB) 1

この指定では、先頭の 0.0.0.0 が IP アドレスの指定、次の 0.0.0.0 がネットマスク、ALLOW が許可の指定、1 が優先度ということで、結局、インターネット/イントラネットのすべてのコンピュータからコントロールコマンドを受け付ける指定になっています。

セキュリティを守るためには、デフォルトの指定を必ず削除し、ひとまず以下のようにしましょう。

"0.0.0.0" (TAB) "0.0.0.0" (TAB) "DENY" (TAB) 1
"127.0.0.0" (TAB) "255.255.255.0" (TAB) "ALLOW" (TAB) 2

この場合、この XMail をコントロールコマンドを使って管理することは、ローカルコンピュータにログオンしているユーザのみに限定されることになります。

アクセスコントロールの詳細については "セキュリティ" のページを参照してください。

  Top ↑

アクセスコントロールの設定(全 OS 共通)


セキュリティを守るために、XMail ではさまざまなアクセスコントロールが可能ですが、最初の環境設定を行うにあたりひとまず SMTP リレーの設定は必ず行っておきましょう。さもないと、たちまちあなたのメールサーバがスパマーたちに利用されてしまいます。

SMTP リレーの設定は MailRoot/smtprelay.tab で行います。
デフォルトの内容は以下のようになっているでしょう。

"10.0.0.0" (TAB) "255.0.0.0"
"172.16.0.0" (TAB) "255.255.0.0"
"192.168.0.0" (TAB) "255.255.0.0"

これはこのままで使えるのですが、もしも以下のエントリが入っている場合はそれを必ず削除してください。 XMail の古いバージョンには入っている可能性があります。

"0.0.0.0" (TAB) "0.0.0.0"

SMTP リレーの指定の個々のエントリは以下のフォーマットです。

"IPアドレス" (TAB) "ネットマスク"

指定対象のコンピュータが SMTP リレーを許可されます。指定は必要な数だけ繰り返すことができます。

セキュリティを守るためには、限定された特定のコンピュータのみに SMTP リレーを許可する必要があります。たとえば、192.168.0.0/24 のローカルエリアネットワークだけにそれを許可する場合、smtprelay.tab の内容は以下のようになります。

"127.0.0.0" (TAB) "255.255.255.0"
"192.168.0.0" (TAB) "255.255.255.0"

アクセスコントロールの詳細については "セキュリティ" のページを参照してください。

  Top ↑

OS(オペレーティングシステム)固有の作業


次に、XMail の起動に関する設定作業を行います。 あなたが利用しているオペレーティングシステムの種類に応じ、以下の作業を行ってください。

■レジストリに XMail の環境オプションを登録
■SSL/TLS 関連作業(XMail 1.24 以降)
■XMail サービスを登録

以下はこれらについての説明です。

1. レジストリに XMail の環境オプションを登録

Windows 版の XMail はその起動時にレジストリに登録された環境オプションを参照します。ちょっと危険ですが、レジストリエディタで以下の作業を行ってください。

  1. HKEY_LOCAL_MACHINE\SOFTWARE\ 以下に GNU というキーを作成。

  2. HKEY_LOCAL_MACHINE\SOFTWARE\GNU\ 以下に XMail というキーを作成。

  3. HKEY_LOCAL_MACHINE\SOFTWARE\GNU\XMail\ 以下に MAIL_ROOT という文字列を作成。

  4. MAIL_ROOT の値として MailRoot フォルダのフルパスを指定。

  5. HKEY_LOCAL_MACHINE\SOFTWARE\GNU\XMail\ 以下に MAIL_CMD_LINE という文字列を作成。―― この文字列は XMail を起動するときのコマンドラインオプションを定義するものです。この文字列は必須のものではありませんが、XMail をインターネットサーバとして使う場合は作成した方がよいでしょう。

  6. MAIL_CMD_LINE の値として -Cl -Mr 24 -Pl -Sl -Ql という文字列を入れる。―― Cl というのは コントロールコマンドによる XMail へのアクセスの記録を残すための指定です。また、-Mr は XMail のログファイルを何時間ごとに新規作成するかを指定するもので、-Mr 24 でそれを 24 時間(1日)ごとにします。-Pl は POP サービスの記録を残すことを指定し、-Sl は SMTP サービスの記録を残すことを指定し、-Ql はメッセージ送信モジュールによる送信記録を残すことを指定します。Cl、Pl、Sl、Ql における l は小文字のエルです。その他の起動オプションについては "その他の参考情報" ページから "XMail 起動オプション" を参照してください。

以下は、設定が終わったあとのレジストリのサンプルです。

レジストリの設定

2. SSL/TSL 関連作業

XMail はバージョン 1.24 から SSL/TLS がネイティブでサポートされるようになりました。SSL/TLS を利用する場合は "SSL セットアップ" ページにある作業を行なってください。

もし原因不明のエラーなどで XMail がサービス登録できない場合(次項)や登録できてもその起動に失敗する場合には本ページの "登録できない? 動作しない?" を参考にしてください。

3. XMail サービスを登録

次に、XMail を Windows のシステムサービスとして登録します。 xmail.exe が存在する場所でコマンドプロンプトを開き、以下のようなコマンドを実行してください。

xmail   --install-auto

コマンドの引数 --install-auto はスペースをはさまず、最初のハイフンは 2 個です。 これで XMail がシステムサービスとして登録され、Windows の起動とともに XMail も自動的に起動するようになります。念のために [コントロールパネル] の [サービス] パネルを開き、サービスが登録されていることを確認してください。

【注意】 XMail 1.24 以降でサービスを登録するとき、「指定されたプログラムを実行できません。」または「アプリケーションを正しく初期化できませんでした。(0xc0150002)。[OK]をクリックしてアプリケーションを終了してください。」などのメッセージが表示され、登録ができない場合は本ページの "登録できない? 動作しない?" を参考にしてください。

  Top ↑

XMail の起動(全 OS 共通)


次に、あなたがコントロールコマンドを使って XMail を管理するつもりであれば、ここでXMail を起動させてください。XMail が起動していないとドメインやユーザ、メーリングリストなどを登録することはできません。

一方、あなたがコントロールコマンドを使わず、すべてを手作業で行うつもりであるなら、XMail はすべての作業が終わってから起動させる必要があります。この場合、次項 "ドメインやユーザ、メーリングリスト、エイリアスの登録" に進んでください。

なお、"その他の参考情報" ページの "XMail 起動オプション" には XMail の詳細な起動オプションがあります。

  Top ↑

ドメインやユーザ、メーリングリスト、エイリアスの登録(全 OS 共通)


次はアカウントの登録です。

すべてを手作業で行う場合は "Readme.txt" のページを参考に、上記のファイルにアカウントを登録してください。

コントロールコマンドを使ってアカウントを登録する場合は、コンソール(コマンドプロンプト)を開いて XMail の ctrlclnt(ctrlclnt.exe) コマンドがある場所をカレントディレクトリにし、以下のようにコマンドを実行してください。

■ドメインの登録

ctrlclnt -s (server) -u (name) -p (pass) domainadd domainname

ただし、(server) は接続先の XMail ホストのドメイン名または IP アドレスで、本ページと同様に環境設定を行った場合は 127.0.0.1 または localhost を指定します。(name) はシステム管理者の名前で本ページの "システム管理者の登録" で登録した名前です。(pass) はシステム管理者のパスワードです。

domainadd がドメインを新規登録するためのコマンドで domainname に登録ドメインの名前を指定します。複数のドメインを登録する場合は同様にコマンドを繰り返してください。

■ユーザ/メーリングリストの登録

ctrlclnt -s (server) -u (name) -p (pass) useradd domain username password usertype

useradd がユーザまたはメーリングリストを新規登録するためのコマンドで、domain にその所属するドメインの名前を、username にその登録名を、password にそのパスワードを、usertype に一般ユーザであるかメーリングリストであるかの区別をユーザの場合には U で、メーリングリストの場合は M で指定します。

たとえば、dojo.jp ドメインに新規ユーザ foo をパスワード hogehoge で登録する場合の実際のコマンドラインは以下のようになります。

ctrlclnt -s (server) -u (name) -p (pass) useradd dojo.jp foo hogehoge U

複数のアカウントを登録する場合は同様にコマンドを繰り返してください。なお、登録ユーザが多数である場合の一括登録コマンドとして XMail には mkusers(mkusers.exe) コマンドが付属しています(詳細は "その他の参考情報" ページを参照)。

■エイリアスの登録

ctrlclnt -s (server) -u (name) -p (pass) aliasadd domain alias username

aliasadd がエイリアス(別名)を新規登録するためのコマンドで、domain がエイリアス名のユーザが所属するドメインの名前で、alias がエイリアス名で、username が実在するユーザの名前またはメールアドレスです。

たとえば、dojo.jp ドメインの postmaster というユーザ名を同じドメインの foo さんのエイリアスにする場合は以下のようにコマンドを実行します。

ctrlclnt -s (server) -u (name) -p (pass) aliasadd dojo.jp postmaster foo

これにより、postmaster@dojo.jp あてのメッセージは実際には foo@dojo.jp で受け取ることになります。ただし、送信者はその事実を知ることはありません。

このサンプルは同じドメイン内でのエイリアスの指定ですが、異なるドメイン間でもエイリアスの指定を行うことができます(詳細は "コントロールコマンド" ページを参照)。

  Top ↑

メールサービスの開始(全 OS 共通)


いよいよメールサービスの開始です。

コントロールコマンドを使っているユーザはそのままサービスを開始できます。 手作業で環境設定を行った優等生はここで XMail を起動してください。

XMail 1.24 以降をインストール/セットアップしてそのサービス登録や起動に失敗する場合、または送受信に失敗する場合は本ページの "登録できない? 動作しない?" を参考にしてください。

  Top ↑

動作テスト(全 OS 共通)


しばらくは動作テストを念入りに行いましょう。不完全なサービスを行うとユーザのみんなに迷惑がかかってしまいます。 初めは少数のユーザでテストを行い、徐々にドメインやユーザ、メーリングリスト、エイリアスなどを追加し、XMail のその他の機能もオンにするなどしてサービスを完全なものにしてください。

動作テストをする場合にもっとも間違いが起きやすいのがクライアントアプリケーション(メーラ)における POP アカウントの設定です。

POP アカウントの設定では、ユーザ名を foo:dojo.jp または foo@dojo.jp のようにドメイン名まで含める必要があります。これは、XMail がマルチドメインに対応しており、異なるドメイン内の同名ユーザを区別するためです。ただし、環境設定ファイル server.tab の変数 POP3Doamin で指定したドメインのユーザである場合はドメイン名を省略できます。

メールサービスでトラブルが起きた場合、原因を特定するのが困難な場合があります。 XMail の環境に問題があるのか、あるいはネットワークに問題があるのか、あるいは DNS などの 関連システムに問題があるのかなど、多くの要素を広範囲に考慮しなければならない場合が多いからです。

しかし、トラブルの見舞われてもあきらめずにチャレンジしてください。 メールサービスほどみんなの役に立つものはありません。 xmail.dojo.jp はあなたを全力で応援します。

  Top ↑

登録できない? 動作しない?(Windows)


XMail 1.24 以降をインストール/セットアップしてそのサービス登録や起動に失敗する場合、または送受信に失敗する場合は以下のようにしてみてください。

  1. XMail が起動しない場合、Microsoft のダウンロードセンターなどから Microsoft .NET Framework(2.0以降) または C++ ランタイム(Microsoft Visual C++ 2005 再頒布可能パッケージなど)をインストールしてみてください。

  2. XMail で SSL/TLS を利用する場合は XMail 同梱の libeay32.dll と ssleay32.dll をパスの通った場所(Windows の system32 フォルダなど)にコピーしてください。

  3. XMail で SSL/TLS を利用する場合は XMail の MailRoot 内に証明書(server.cert) と秘密鍵(server.key) を作成してください。作成時にエラーがある場合は前項(1,2)の作業を確認してください。証明書や秘密鍵の作成方法については [XMail] セクションの "SSL セットアップ" ページに情報があります。

  4. XMail で SSL を利用しない場合でも、クライアントから STARTTLS(STLS) による接続があると、前項(1-3)の作業が行なわれていない場合は接続に失敗します。


  Top ↑
Copyright(c) xmail.dojo.jp.
All rights reserved.