ExchangeサーバーをGmailで利用するーPOP/IMAP/SMTPサーバーに変える「Davmail」

2018年7月8日Linux・Ubuntu TipsLinux, Ubuntu, Let's Encrypt, DavMail, Exchange

Davmailは、ExchangeサーバーをPOP/IMAP/SMTPサーバーに変えることが出来るソフトウェア。
クライアントソフトとして動作させることが基本とされていて、Davmailをインストールしたあとにlocalhostへつなぐことが出来れば、Exchangeに標準では対応していないThunderbird等でIMAP/SMTPを介したメールのやりとりが出来るようになるのだが、今回はこれをサーバーとして動作させ、Gmailでのやりとりに対応させる。

DavMailのインストール

今回も、Ubuntu環境で実施。環境の異なる方も、同じ手順で実施可能かと思われる。

まず、上記の公式サイトより、DavMailの最新版をダウンロードする。下記で、Debianパッケージが配布されているので、それを利用すれば良い。

最新版は、4.8.5(2018年6月1日現在)。

そのまま、dpkgを使ってインストールする。

dpkg -i davmail_4.8.5-2589-1_all.deb

CentOS等を利用している場合

Debianパッケージに対応していないCentOS等を利用している場合は、alienコマンドなどを利用して、RPMパッケージを作ってしまうと良いだろう。

debパッケージをrpm形式に変換する「alien」
世の中では、Debパッケージでは配布されているものの、RPMパッケージでは配布されていない場合が多々ある。その場合、alienというパッケージを利用することで、Debパッケージを

davmailをサーバーモードで起動する準備

起動する前に、各ファイルがどこに格納されているかを見ておこう。

davmailのバイナリは、/usr/bin/davmailに存在している。initスクリプトが/etc/init.d/davmailに用意されていて、start時に/etc/davmail.propertiesという設定ファイルを読み込む形となっている。

従って、設定ファイル「/etc/davmail.properties」に設定を書き込めば良い。

設定ファイル「/etc/davmail.properties」を編集する

記載する内容は非常にシンプルだ。ExchangeサーバーのURLと、Davmailが提供するCalDAV・IMAP・LDAP・POP・SMTPサーバーそれぞれのポートを指定してあげれば良い。

また、今回はサーバーモードとして用いるため、「davmail.server」をtrueに設定した。また、外部からのアクセスを可能とするため、davmail.allowRemoteをtrueに設定する。

もしGmailからアクセスするのであれば、POPサーバーは110,143,993,995,1110,2221のいずれかに設定する必要がある(それ以外は、Gmailから選択することが出来ない)。また、SMTPサーバーも25,465,587のいずれかにしなくてはならない。

# Server or workstation mode
davmail.server=true

# connection mode auto, EWS or WebDav
davmail.enableEws=auto

# base Exchange OWA or EWS url
davmail.url=https://XXXXXX.XXXX/Exchange.asmx

# Listener ports
davmail.caldavPort=XXXX
davmail.imapPort=XXXXX
davmail.ldapPort=XXXX
davmail.popPort=XXXX
davmail.smtpPort=XXXX

# allow remote connection to DavMail
davmail.allowRemote=true

なお、これ以降の設定部分にSSLの設定がある。クライアントソフトウェアによっては、オレオレ証明書を使用している場合にエラーが出てしまう場合があるが、その際にはLet’s Encryptを用いてP12ファイルを作り、これをSSL証明書として使用してしまえば良い。

Let's Encrypt(Certbot)のSSLサーバー証明書をP12形式(PKCS12)に変換して...
一部のソフトウェアでは、PKCS12形式(.p12のファイル)をサーバー証明書として使用する場合がある。Let's Encryptでは標準でP12フィイルを作成してくれないが、 o

DavMailでは、パスワードをブランクにしていると受け付けてくれないため、この点に注意。

セキュリティ設定

当然ながら、外部に対してこのようなサーバーを公開することは危険が伴う。iptablesやfail2banを用いて、不審なアクセスがあれば即座に遮断するような設定を行った方が良い。

DavMailを起動する

起動は先ほどのinitスクリプトを使用すればよい。

/etc/init.d/davmail start

これで、davmailがスタートする。

ps aux | grep davmail
root      5887  0.0  0.3 4496872 128972 ?      Sl    5月17  14:49 java -Xmx512M -Dsun.net.inetaddr.ttl=60 -cp /usr/sharedavmail/davmail.jar:/usr/share/java/swt.jar::/usr/share/davmail/lib/activation-1.1.1.jar:/usr/share/davmail/lib/commons-codec-1.3.jar:/usr/share/davmail/lib/commons-collections-3.1.jar:/usr/share/davmail/lib/commons-httpclient-3.1.jar:/usr/share/davmail/lib/commons-logging-1.0.4.jar:/usr/share/davmail/lib/htmlcleaner-2.2.jar:/usr/share/davmail/lib/jackrabbit-webdav-2.4.3.jar:/usr/share/davmail/lib/jcharset-1.3.jar:/usr/share/davmail/lib/jcifs-1.3.14.jar:/usr/share/davmail/lib/jdom-1.0.jar:/usr/share/davmail/lib/junit-3.8.1.jar:/usr/share/davmail/lib/log4j-1.2.16.jar:/usr/share/davmail/lib/mail-1.4.3.jar:/usr/share/davmail/lib/slf4j-api-1.7.25.jar:/usr/share/davmail/lib/slf4j-log4j12-1.7.25.jar:/usr/share/davmail/lib/stax-api-1.0.1.jar:/usr/share/davmail/lib/stax2-api-3.1.1.jar:/usr/share/davmail/lib/woodstox-core-asl-4.1.2.jar:/usr/share/davmail/lib/xercesImpl-2.8.1.jar davmail.DavGateway /etc/davmail.properties

クライアントからの接続をテストする

今回は、Gmailからメールの送受信をしてみよう。

Gmailの「設定」から「アカウント」へと進む。
「他のアカウントでメールを確認:」欄の「メール アカウントを追加する」をクリックすると、メールアドレスの入力欄が現れる。

gmail-settings-2-2-w500

POPサーバーはサーバーのアドレスを、ユーザー名とパスワードは、普段Exchangeサーバーにログインする際のものを使用しよう(「AD」等のドメイン名は、外してみて行ってみて、もしうまくいかなかったら付ける、で問題ない)。

Let’s Encrypt等を用いてSSL接続が正常に行われる状態となっているのであれば、「メールの取得にセキュリティで保護された接続(SSL)を利用する」にチェックするのが賢明だろう。

これで、Gmailが自動的にDavmailへPOPでアクセスし、DavmailがExchangeサーバーに問い合わせ、Gmailに返却……と、GmailでExchangeサーバーのメールを読みとることが出来るようになった。

「名前」欄にある「他のメール アドレスを追加」項目を使えば、SMTPサーバーのセットアップも可能だ。こちらを用いれば、ExchangeサーバーをGmail経由で操作することが出来るようになる。

Exchangeが環境として提供されているが、Thunderbird等のクライアントが使いたい場合、あるいはGmail等のWebメールを用いたい場合には、Davmailを使用することで解決することが出来る。といっても、日本のほとんどの企業ではこのような使用を許可しているはずがないので、その点は事前に気をつけよう。また、外部にメールサーバーを公開することとなるため、(先ほども記載したが)セキュリティ設定にはくれぐれも注意しよう。