序章

職場または学校でMicrosoftExchangefor E-mailを使用している場合は、Exchangeプロトコルをサポートしていない電子メールクライアントからExchangeEメールアカウントにアクセスすることをお勧めします。

DavMail は、Microsoft ExchangeをPOP、IMAP、SMTP、Caldav、Carddav、LDAPなどのオープンプロトコルに変換するソリューションを提供します。

インストール

Davmailが正しく機能するには、いくつかの追加の依存関係が必要です。 aptでインストールします。

sudo apt-get install default-jre libswt-gtk-3-java libswt-cairo-gtk-3-jni

DavMailプロジェクトは、Debianパッケージを[SourceForge( http://sourceforge.net/projects/davmail/files/davmail/ )を通じてWebサイトで利用できるようにします。

wgetを使用して最新のDebianパッケージをダウンロードします。

wget http://sourceforge.net/projects/davmail/files/davmail/4.4.1/davmail_4.4.1-2225-1_all.deb

次に、dpkgを使用してDavMailをインストールします。

sudo dpkg -i davmail_4.4.1-2225-1_all.deb

基本構成

DavMailの構成ファイルはデフォルトでは存在しません。 お気に入りのテキストエディタで作成します。

sudo nano /etc/davmail.properties

DavMailをサーバーモードに設定して、X11を必要としないようにします。

davmail.server=true

リモートモードを有効にして、バインドアドレスをドロップレットのIPアドレスに設定するか、空白に設定します。

davmail.allowRemote=true
davmail.bindAddress=

davmail.urlをOutlookWebApp / Outlook Web AccessのURLに設定します。これは通常、/owaで終わります。

davmail.url=https://yourcompany.com/owa

接続モードを設定します。

davmail.enableEws=auto

ポートオプションを設定します。

davmail.imapPort=993
davmail.smtpPort=465
davmail.ldapPort=636
davmail.popPort=995
davmail.caldavPort=8443

構成ファイルを保存して閉じます。

SSL証明書を作成する

SSL暗号化を有効にするには、PEM形式のSSL証明書とSSL秘密鍵が必要です。 認証局から証明書を購入した場合は、証明書とキーがすでにあるはずです。 その場合は、以下の「SSLの構成」セクションに進んでください。 それ以外の場合は、次の手順に従って自己署名証明書を生成できます。

OpenSSLを使用してRSAキーを生成します。

sudo openssl genrsa -out /usr/lib/ssl/private/davmail.key 2048

キーがrootによって所有されており、権限が適切に設定されていることを確認してください。

sudo chown root:root /usr/lib/ssl/private/davmail.key
sudo chmod 600 /usr/lib/ssl/private/davmail.key

次に、証明書署名要求を作成します。

sudo openssl req -new -key /usr/lib/ssl/private/davmail.key -out /usr/lib/ssl/certs/davmail.csr

OpenSSLは、いくつかの質問をします。 唯一の重要なフィールドはCommonName です。これは、電子メールクライアントがアクセスするドロップレットのドメイン名またはIPアドレスに設定する必要があります(例: davmail.mydomain.com または123.123.123.123)。 他のフィールドは、Enterキーを押すだけでデフォルトのままにするか、次のように入力できます。

You are about to be asked to enter information that will be incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
    -----
Country Name (2 letter code) [XX]:US
State or Province Name (full name) []:New York
Locality Name (eg, city) [Default City]:New York City
Organization Name (eg, company) [Default Company Ltd]:Lolcats United
Organizational Unit Name (eg, section) []:Keyboard Cat Department
Common Name (eg, your name or your server's hostname) []:mydomain.com
Email Address []:[email protected]

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

-days引数を使用して有効期限を設定し、秘密鍵を使用して証明書要求に署名します。

sudo openssl x509 -req -signkey /usr/lib/ssl/private/davmail.key -in /usr/lib/ssl/certs/davmail.csr -out /usr/lib/ssl/certs/davmail.crt -days 365

上記の設定では、証明書は365日(1年)で期限切れになります。

これで、独自のSSL証明書ができました。

SSLの構成

SSL証明書を取得したので、それをDavMailが理解できる形式に変換する必要があります。 次の例では、上記で生成したキーと証明書を使用します。 認証局から証明書を購入した場合は、davmail.keyおよびdavmail.crtの代わりにそれらのファイルを使用してください。

証明書とキーファイルをcatと組み合わせることから始めます。

sudo -s cat /usr/lib/ssl/private/davmail.key /usr/lib/ssl/certs/davmail.crt > /usr/lib/ssl/certs/davmail.pem
exit

もう一度、rootのみがキーファイルにアクセスできるように権限を設定します。

sudo chown root:root /usr/lib/ssl/certs/davmail.pem
sudo chmod 600 /usr/lib/ssl/certs/davmail.pem

次に、結合されたキーと証明書をpkcs12ファイルに変換します。

sudo openssl pkcs12 -export -in /usr/lib/ssl/certs/davmail.pem -out /usr/lib/ssl/certs/davmail.p12 -name “davmail”

エクスポートパスワードの入力を求められます。 これを空白にすることはできません!

パスワードを設定する必要があります。設定しないと、DavMailが正しく機能しません。

権限を設定します。

sudo chown root:root /usr/lib/ssl/certs/davmail.pem
sudo chmod 600 /usr/lib/ssl/certs/davmail.pem

次に、DavMail構成を再度開きます。

sudo nano /etc/davmail.properties

次の構成オプションを追加して、生成したpkcs12ファイルの場所と設定したパスフレーズをDavMailに通知します。

davmail.ssl.keystoreType=PKCS12
davmail.ssl.keystoreFile=/usr/lib/ssl/certs/davmail.p12
davmail.ssl.keyPass=password
davmail.ssl.keystorePass=password

davmail.ssl.keyPassdavmail.ssl.keystorePassの両方が同じ値である必要があります。 構成ファイルを保存します。

これで、SSL証明書を使用するようにDavMailが構成されました。

DavMailを起動します

初期にダウンロードしたDebianパッケージにはinitスクリプトが含まれていないため、独自のスクリプトを作成する必要があります。

お気に入りのテキストエディタで新しいファイルを作成します。

sudo nano /etc/init.d/davmail

以下をコピーしてファイルに貼り付けます。

#! /bin/sh
### BEGIN INIT INFO
# Provides:          davmail
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: DavMail Exchange gatway
# Description:       A gateway between Microsoft Exchange and open protocols.
    ### END INIT INFO

    # Author: Jesse TeKrony <jesse ~at~ jtekrony ~dot~ com>

    PATH=/sbin:/usr/sbin:/bin:/usr/bin
    DESC="Davmail Exchange gateway"
    NAME=davmail
    CONFIG=/etc/davmail.properties
    DAEMON=/usr/bin/$NAME
    DAEMON_ARGS="$CONFIG"
    PIDFILE=/var/run/$NAME.pid
    SCRIPTNAME=/etc/init.d/$NAME
    LOGFILE=/var/log/davmail.log

    # Exit if the package is not installed
    [ -x "$DAEMON" ] || exit 0

    # Read configuration variable file if it is present
    [ -r /etc/default/$NAME ] && . /etc/default/$NAME

    # Load the VERBOSE setting and other rcS variables
    . /lib/init/vars.sh

    # Define LSB log_* functions
    . /lib/lsb/init-functions

    #
    # Function that starts the daemon/service
    #
    do_start()
    {
        start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
            || return 1
        start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
            $DAEMON_ARGS >> $LOGFILE 2>&1 &
        [ $? != 0 ] && return 2
        echo $! > $PIDFILE
        exit 0
    }

    #
    # Function that stops the daemon/service
    #
    do_stop()
    {
        start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE
        RETVAL="$?"
        [ "$RETVAL" = 2 ] && return 2.
        start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
        [ "$?" = 2 ] && return 2
        rm -f $PIDFILE
        return "$RETVAL"
    }

    case "$1" in
      start)
        [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
        do_start
        case "$?" in
            0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
            2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
      stop)
        [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
        do_stop
        case "$?" in
            0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
            2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
        esac
        ;;
      status)
           status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
           ;;
      restart|force-reload)
        log_daemon_msg "Restarting $DESC" "$NAME"
        do_stop
        case "$?" in
          0|1)
            do_start
            case "$?" in
                0) log_end_msg 0 ;;
                1) log_end_msg 1 ;; # Old process is still running
                *) log_end_msg 1 ;; # Failed to start
            esac
            ;;
          *)
            # Failed to stop
            log_end_msg 1
            ;;
        esac
        ;;
      *)
        echo "Usage: $SCRIPTNAME {start|stop|status|restart| force-reload}" >&2
        exit 3
        ;;
    esac

ファイルを保存して閉じます。

スクリプトを実行可能としてマークし、サービスを開始して、起動時に有効にします。

sudo chmod +x /etc/init.d/davmail
sudo service davmail start
sudo update-rc.d davmail defaults

クライアント構成

サーバーが実行されたので、電子メールクライアントを構成する準備が整いました。 電子メールクライアントの「手動」オプションを使用して、新しいアカウントを作成します。 IMAPサーバーとSMTPサーバーの両方が、SSL証明書の共通名に使用したものに応じて、ドロップレットのドメイン名またはIPアドレスになります。 IMAPとSMTPのユーザー名は、どちらもドメイン名を含まない電子メールアドレスになります。 例:電子メールはbob @yourcompany .comであるため、ユーザー名はbobです。 IMAPとSMTPの両方がSTARTTLSではなくSSL/TLSを使用するように設定されていることを確認してください。

自己署名証明書を使用しているため、電子メールクライアントから警告が表示されます。 この場合、証明書を作成したのはあなたであるため、証明書を受け入れるのは安全です。

Thunderbird、Mac OSX、およびiOSの具体的な手順は、DavMailのWebサイトで入手できます。

これで、オープンテクノロジを使用してMicrosoftExchange電子メールアカウントを使用して電子メールを送受信できるようになります。