Apache jamesでimapメールサーバを立てる

IMAPアクセスの実験用にいろいろとメールサーバを物色した。Windows上ではhMailServer( http://www.hmailserver.com/ )を愛用しているけど、クロスプラットフォームになるとなかなか難しい。UW-IMAPは非常に簡単にデプロイできるけど将来が不透明だし。

というわけでApache Jamesにした。JamesはPure Javaなメールサービスで、JDK7だと正常に起動しないのでパッチが要る( https://issues.apache.org/jira/browse/JAMES-1420 )ことを除けば非常に簡単に導入できる。
今回はローカルにしか公開しないので、confディレクトリに以下のような内容のXMLを配置する:

  • dnsservice.xml
<dnsservice>
    <servers>
        <server>127.0.0.1</server>
    </servers>
    <autodiscover>false</autodiscover>
    <authoritative>false</authoritative>
    <maxcachesize>50000</maxcachesize>
</dnsservice>
  • mailserver.xml
<mailserver>
    <postmaster>postmaster@pure.local</postmaster>
    <enableVirtualHosting>true</enableVirtualHosting>
    <defaultDomain>cage.local</defaultDomain>
    <helloName autodetect="true">mymail</helloName>
</mailserver>

pure.localはホスト名。(WindowsBonjourを導入しているので、Windowsホスト名がpureならpure.localで解決できるようになっている。)
ユーザの追加はjames-cliコマンドで行う。

james-cli --host localhost adduser okuoku@pure.local PASSWORD