16.4.Jamesの設定
 16.4.0.設定方法
 16.4.1.Jamesの基本設定
 16.4.2.fetchpopの設定
 16.4.3.spoolmanagerの設定
 16.4.4.dnsserverの設定
 16.4.5.remotemanagerの設定
 16.4.6.pop3Serverの設定
 16.4.7.smtpServerの設定
 16.4.8.nntpServerの設定
 16.4.9.その他の設定
 


16.4.Jamesの設定

 16.4.0.設定方法
    Jamesの設定は「f:\java\james\apps\james\SAR-INF\config.xml」を編集することで行います。とりあえず、編集ミスをしたときにためにこれをコピーしておきましょう。名前などはなんでもOKです。
 次に、テキストエィタなどで「config.xml」を開き以下の項目を参考に変更します。
 変更をしたらJamesを再起動すると設定が有効となります。

 16.4.1.Jamesの基本設定
   Jamesをちゃんとしたメールサーバとして機能させるために設定を行いましょう。

 まずは、あて先間違いなどのメールを受け取るための管理者のメールアドレスを設定します。ここの設定はあて先違いの自動返信メールの送信者のアドレスとしても使用されるようです。
28行目あたり
<postmaster>Postmaster@localhost</postmaster>
  ↓↓↓
<postmaster>ユーザ名@ホスト名</postmaster>

 ここでいう[ユーザ名]は前節のように作成したユーザの名前です。自分の名前なりなんなりのユーザを作成して好きにつけてください。
 [ホスト名]は自分の使っているコンピュータの完全なホスト名(例:mail.iihito.dip.jp)です。ただ実験で使用するだけであれば[localhost]のままにしておけばよいでしょう。


●49行目あたりの<servernames>の設定はJamesがメールを受け取るドメインを設定します。
 autodetect属性をtrueにすると、ホスト名を取得しそのホスト名宛てに届いたメールを受け取ります。
 autodetectIP属性をtrueにすると、自分のIPアドレス宛てに届いたメールを受け取ります。
 さらに<servername>でメールを受け取るドメインを指定することもできます。
設定例1
<servernames autodetect="true" autodetectIP="true">
  <servername>localhost</servername>
</servernames>

 この設定では、自分のホスト名(hostnameコマンドで確認できる)宛てのメールと自分のIPアドレス(192.168.0.1など)宛てのメールを受け取りさらに、[localhost]宛てのメールも受け取るようになります。
設定例2
<servernames autodetect="true" autodetectIP="true">
  <servername>localhost</servername>
  <servername>ドメイン名</servername>
</servernames>

 さらに、こうすると[ドメイン名](例:iihito.dip.jp)の部分に書かれたドメインのメールをすべてJamesが受け取るようになり、Jamesがそのドメインのメールサーバとして機能します。
 ちなみに、後で説明するDNSサーバが正しく設定されていないと、うまくいきません。


●55行目あたりの<usernames>の設定はメールを受け取るユーザの設定です。
 ignoreCase属性をtrueにすると、ユーザ名の大文字小文字を区別しません。
 enableAliases属性をtrueにすると、alias(別名)を使用可能になります。
   ちなみにaliasはtelnetで4555ポートに接続して設定できます。
 enableForwarding属性をtrueにすると、メールの自動転送が可能になります。
   転送の設定も4555ポートに接続して設定できます。
設定例
<usernames ignoreCase="true" enableAliases="true" enableForwarding="true"/>

 この設定例では、ユーザ名の大文字と小文字を区別しないで、aliasを使用する、さらにメールの自動転送も使用するという設定になります。


●60行目あたりの<inboxRepository>の設定は受け取ったメールの保存場所の設定です。
 <repository>タグを書き
 destinationURL属性にメールを保存するディレクトリを指定します。
   ここでの設定は[f:\james\apps\james]からの相対ディレクトリになります。
 type属性の値は現在のところ[MAIL]しか用意されていません。
設定例1
<inboxRepository>
  <repository destinationURL="file://var/mail/inboxes/" type="MAIL"/>
</inboxRepository>

 この例では、[f:\james\apps\james\var\mail\inboxes\]ディレクトリ以下にユーザのディレクトリがそれぞれ作成されてそこに受信したメールが保存される設定となります。
設定例2
<inboxRepository>
  <repository destinationURL="db://jdbc:odbc:James/inbox" type="MAIL"/>
</inboxRepository>

 この例では、「jdbc:odbc」ドライバによって接続された[james]というデータベースの[inbox]というテーブルに受信されたメールが保存されます。


 16.4.2.fetchpopの設定
    FtchPopとは、あるメールサーバのメールを自分のメールサーバにダウンロードする機能のようです。
 ただ、筆者は使ったことがないので、説明を省略します。また、必要になったら核かもしれないです。
 
 

 16.4.3.spoolmanagerの設定
    spoolmanagerは次の章で詳しく説明するMailetに関する記述が書かれている部分です。説明は次の章でするのでとりあえずはとばしておきます。
 
 

 16.4.4.dnsserverの設定
    dnsserverはJamesが名前解決のために使用するDNSサーバを設定するものです。

●341行目あたりのserversはDNSサーバの設定です。
  <server>タグを書きその値にDNSサーバのIPアドレスを書きます。
設定例
<servers>
  <server>192.168.0.10</server>
  <server>192.168.0.11</server>
</servers>

 この例では[192.168.0.10]と[192.168.0.11]の二台のDNSサーバを登録しました。通常DNSサーバは二台提供されているはずですので二台登録しますが、一台しかない場合は一つでもかまわないでしょう。
 
 
●347行目あたりのserversはDNSレコードを常に要求するかという設定です
  この値は通常[false]にして使用するようです。
設定例
<authoritative>false</authoritative>

   
 

 16.4.5.remotemanagerの設定
   リモートマネージャとは、Jamesへユーザを追加したりalias(別名)を設定したりするときに使用するサービスです。<remotemanager>タグに属性[enabled]を追加しその値を[false]にするとリモートマネージャは使用不可能になります。
普段使用しないときは、使用不可にしておくべきでしょう
●351行目あたりのportはリモートマネージャのサービスを提供するポート番号の設定です。
 この値は初期値では[4555]にして使用しますが、セキュリティーの面からもポート番号を変えておいた方がよいかもしれません。
設定例
<port>4555</port>



●360行目あたりのhandlerはリモートマネージャのサービスの基本設定です。
 <helloName>タグにはメールサーバの名前を書きます。
   autodetect属性がtrueになっているとホスト名が名前になります。
 <account>タグには管理者としてログオンするための設定を書きます
   login属性がユーザID
   password属性がパスワードです
 <connectiontimeout>タグには何も通信しなかった場合に切断するまでの時間(ミリ秒)を書きます
設定例1
<handler>
  <helloName autodetect="true">myMailServer</helloName>
  <administrator_accounts>
    <account login="Admin" password="hoge"/>
  </administrator_accounts>
  <connectiontimeout> 60000 </connectiontimeout>
</handler>

 この設定例では、リモートマネージャにログインした時に表示されるメールサーバの名前はとりあえずホスト名を使い、それが取得できなかった場合には「MyMainServer」とする。さらに、リモートマネージャーの管理者のユーザIDは[Admin]でパスワードは[hoge]に設定。さらに、60秒無通信が続いたら切断する。という設定になります。
 また、管理者のユーザIDとパスワードはデフォルトから必ず変えるようにしてください。

設定例2
<handler>
  <helloName autodetect="true">myMailServer</helloName>
  <useTLS>true</useTLS>
  <administrator_accounts>
    <account login="root" password="root"/>
  </administrator_accounts>
  <connectiontimeout> 60000 </connectiontimeout>
</handler>

 この設定にすると、リモートマネージャーとの通信がすべてSSLによって暗号化されます。よって多少セキュリティが向上します。
 ただし、使用しない場合は不可にしておくのがもっとも安全でしょう。

 16.4.6.pop3Serverの設定
    pop3Serverの設定では、メールの受信時に使用するPOP3の機能についての設定を行います。
 この%lt;pop3Server%gt;タグのenabled属性の値をFalseにするとPOP3のサービスは停止されます。

●382行目あたりのportはPOP3サービスを提供するポート番号の設定です。
 この値は通常[110]にしておけばよいですが、SSL/TLSによって暗号化を使用する場合には[995]にするのが一般的なようです。
設定例
<port>110</port>



●393行目あたりのhandlerはPOP3サービスの基本設定です。
 基本的には上のリモートマネージャの設定と同じです。
 <helloName>タグにはメールサーバの名前を書きます。
   autodetect属性がtrueになっているとホスト名が名前になります。
 <connectiontimeout>タグには何も通信しなかった場合に切断するまでの時間(ミリ秒)を書きます
設定例
<handler>
  <helloName autodetect="true"%gt;myMailServer</helloName%gt;
  <connectiontimeout%gt;120000</connectiontimeout%gt;
</handler>



 16.4.7.smtpServerの設定
    smtpServerの設定では、メールの送信に使用するSMTPの機能についての設定を行います。
 この%lt;smtpServer%gt;タグのenabled属性の値をFalseにするとSMTPのサービスは停止されます。

●409行目あたりのportはSMTPサービスを提供するポート番号の設定です。
 この値は通常[25]にしておけばよいでしょう。
設定例
<port>110</port>



●420行目あたりのhandlerはSMTPサービスの基本設定です。
 基本的には上のリモートマネージャの設定と同じです。
 <helloName>タグにはメールサーバの名前を書きます。
   autodetect属性がtrueになっているとホスト名が名前になります。
 <connectiontimeout>タグには何も通信しなかった場合に切断するまでの時間(ミリ秒)を書きます
 <maxmessagesize>タグはSMTPサーバ受け取ることのできり最大のメールのサイズを指定します。
  ちなみに0を設定すれば、メールサイズの上限は無制限になります。
設定例1
<handler>
  <helloName autodetect="true">myMailServer</helloName>
  <connectiontimeout>360000</connectiontimeout>
  <maxmessagesize>0</maxmessagesize>
</handler>


設定例2
<handler>
  <helloName autodetect="true">myMailServer</helloName>
  <authRequired>true</authRequired>
  <connectiontimeout>360000</connectiontimeout>
  <maxmessagesize>0</maxmessagesize>
</handler>

 上のように設定するとSMTPでの認証がメールの送信時に必要となります。この設定をしておけば多少はSPAMの踏み台にされるようなことは防げるかもしれません。

 16.4.8.nntpServerの設定
    nntpサーバの設定ではニュースサーバとしてJamesを使用するための設定です。私はニュースサーバを立てたことがないのでとりあえず使用不可にする方法だけ書いておきます。
 nntpサーバを使用不可にするにはenabled属性をfalseにするだけです。

 16.4.9.その他の設定
    その他の設定は、あまり設定変更する人はいないと思うので説明しません。もしも知りたい方はApacheJamesの公式サイトを参照してみてください。

 
   >>> 16.5.Mailetを使ってみよう <<<


このドキュメントの間違い・誤字・脱字を発見された方は筆者までご連絡をいただけるとうれしいです。

また、私のわかる範囲でご質問にも答えようと思います。ご質問や疑問点がある方は気楽にメールをください。