介绍
如果您的工作场所或学校使用 Microsoft Exchange for 电子邮件,您可能希望从不支持 Exchange 协议的电子邮件客户端访问您的 Exchange 电子邮件帐户。
DavMail提供了一个解决方案,将Microsoft Exchange转换为开放的协议,如POP,IMAP,SMTP,Caldav,Carddav和LDAP。
安装
Davmail 需要一些额外的依赖才能正常工作. 使用 apt 安装它们:
1sudo apt-get install default-jre libswt-gtk-3-java libswt-cairo-gtk-3-jni
DavMail 项目通过 [SourceForge] 在其网站上提供 Debian 包。
使用 wget 下载最新 Debian 包:
1wget http://sourceforge.net/projects/davmail/files/davmail/4.4.1/davmail_4.4.1-2225-1_all.deb
然后用 dpkg 安装 DavMail:
1sudo dpkg -i davmail_4.4.1-2225-1_all.deb
基本配置
DavMail的配置文件默认情况下不存在. 使用您最喜欢的文本编辑器创建一个:
1sudo nano /etc/davmail.properties
将 DavMail 设置为服务器模式,以便不需要 X11:
1davmail.server=true
启用远程模式并将绑定地址设置为您的滴滴的 IP 地址或将其设置为空:
1davmail.allowRemote=true
2davmail.bindAddress=
将davmail.url
设置为您的 Outlook Web App/Outlook Web Access URL,通常以/owa
结束:
1davmail.url=https://yourcompany.com/owa
设置您的连接模式:
1davmail.enableEws=auto
设置您的端口选项:
1davmail.imapPort=993
2davmail.smtpPort=465
3davmail.ldapPort=636
4davmail.popPort=995
5davmail.caldavPort=8443
保存并关闭配置文件。
创建一个SSL证书
要启用 SSL 加密,您将需要一个 SSL 证书和 PEM 格式的 SSL 私钥. 如果您从证书管理机构购买了证书,那么您应该已经拥有您的证书和密钥。
使用 OpenSSL 生成 RSA 密钥:
1sudo openssl genrsa -out /usr/lib/ssl/private/davmail.key 2048
确保密钥由 root 拥有,并正确设置权限:
1sudo chown root:root /usr/lib/ssl/private/davmail.key
2sudo chmod 600 /usr/lib/ssl/private/davmail.key
现在,创建一个证书签名请求:
1sudo openssl req -new -key /usr/lib/ssl/private/davmail.key -out /usr/lib/ssl/certs/davmail.csr
OpenSSL 现在会问你几个问题.唯一重要的字段是 Common Name,该字段应该被设置为您的电子邮件客户端(例如 davmail.mydomain.com 或 123.123.123.123)访问的域名或 IP 地址。
1You are about to be asked to enter information that will be incorporated into your certificate request.
2What you are about to enter is what is called a Distinguished Name or a DN.
3There are quite a few fields but you can leave some blank
4For some fields there will be a default value,
5If you enter '.', the field will be left blank.
6 -----
7Country Name (2 letter code) [XX]:US
8State or Province Name (full name) []:New York
9Locality Name (eg, city) [Default City]:New York City
10Organization Name (eg, company) [Default Company Ltd]:Lolcats United
11Organizational Unit Name (eg, section) []:Keyboard Cat Department
12Common Name (eg, your name or your server's hostname) []:mydomain.com
13Email Address []:[email protected]
14
15Please enter the following 'extra' attributes
16to be sent with your certificate request
17A challenge password []:
18An optional company name []:
使用您的私钥签署证书请求,用-days
参数设置到到期日期:
1sudo 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天(一年)内到期。
您现在拥有自己的SSL证书!
配置SSL
现在你已经拥有 SSL 证书,你将不得不将其转换为 DavMail 理解的格式. 下面的例子将使用我们上文生成的密钥和证书。
首先,将您的证书和密钥文件与猫相结合:
1sudo -s cat /usr/lib/ssl/private/davmail.key /usr/lib/ssl/certs/davmail.crt > /usr/lib/ssl/certs/davmail.pem
2exit
再次,设置权限,以便只有 root 才能访问关键文件:
1sudo chown root:root /usr/lib/ssl/certs/davmail.pem
2sudo chmod 600 /usr/lib/ssl/certs/davmail.pem
现在将您的组合密钥和证书转换为pkcs12文件:
1sudo openssl pkcs12 -export -in /usr/lib/ssl/certs/davmail.pem -out /usr/lib/ssl/certs/davmail.p12 -name “davmail”
您将被要求输入出口密码. 这不能是空的!
您必须设置密码,否则DavMail不会正常工作。
设置许可:
1sudo chown root:root /usr/lib/ssl/certs/davmail.pem
2sudo chmod 600 /usr/lib/ssl/certs/davmail.pem
现在重新打开您的 DavMail 配置:
1sudo nano /etc/davmail.properties
添加以下配置选项,以告知 DavMail 您刚刚生成的 pkcs12 文件的位置和您设置的密码句:
1davmail.ssl.keystoreType=PKCS12
2davmail.ssl.keystoreFile=/usr/lib/ssl/certs/davmail.p12
3davmail.ssl.keyPass=password
4davmail.ssl.keystorePass=password
davmail.ssl.keyPass
和davmail.ssl.keystorePass
都应该具有相同的值。
DavMail现在已配置为使用您的SSL证书。
开始戴维
我们下载的 Debian 包不包含 init 脚本,所以我们必须创建自己的。
使用您最喜欢的文本编辑器创建新文件:
1sudo nano /etc/init.d/davmail
将以下内容复制并粘贴到文件中:
1#! /bin/sh
2### BEGIN INIT INFO
3# Provides: davmail
4# Required-Start: $remote_fs $syslog
5# Required-Stop: $remote_fs $syslog
6# Default-Start: 2 3 4 5
7# Default-Stop: 0 1 6
8# Short-Description: DavMail Exchange gatway
9# Description: A gateway between Microsoft Exchange and open protocols.
10 ### END INIT INFO
11
12 # Author: Jesse TeKrony <jesse ~at~ jtekrony ~dot~ com>
13
14 PATH=/sbin:/usr/sbin:/bin:/usr/bin
15 DESC="Davmail Exchange gateway"
16 NAME=davmail
17 CONFIG=/etc/davmail.properties
18 DAEMON=/usr/bin/$NAME
19 DAEMON_ARGS="$CONFIG"
20 PIDFILE=/var/run/$NAME.pid
21 SCRIPTNAME=/etc/init.d/$NAME
22 LOGFILE=/var/log/davmail.log
23
24 # Exit if the package is not installed
25 [ -x "$DAEMON" ] || exit 0
26
27 # Read configuration variable file if it is present
28 [ -r /etc/default/$NAME ] && . /etc/default/$NAME
29
30 # Load the VERBOSE setting and other rcS variables
31 . /lib/init/vars.sh
32
33 # Define LSB log_* functions
34 . /lib/lsb/init-functions
35
36 #
37 # Function that starts the daemon/service
38 #
39 do_start()
40 {
41 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
42 || return 1
43 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
44 $DAEMON_ARGS >> $LOGFILE 2>&1 &
45 [ $? != 0 ] && return 2
46 echo $! > $PIDFILE
47 exit 0
48 }
49
50 #
51 # Function that stops the daemon/service
52 #
53 do_stop()
54 {
55 start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE
56 RETVAL="$?"
57 [ "$RETVAL" = 2 ] && return 2.
58 start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
59 [ "$?" = 2 ] && return 2
60 rm -f $PIDFILE
61 return "$RETVAL"
62 }
63
64 case "$1" in
65 start)
66 [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
67 do_start
68 case "$?" in
69 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
70 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
71 esac
72 ;;
73 stop)
74 [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
75 do_stop
76 case "$?" in
77 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
78 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
79 esac
80 ;;
81 status)
82 status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
83 ;;
84 restart|force-reload)
85 log_daemon_msg "Restarting $DESC" "$NAME"
86 do_stop
87 case "$?" in
88 0|1)
89 do_start
90 case "$?" in
91 0) log_end_msg 0 ;;
92 1) log_end_msg 1 ;; # Old process is still running
93 *) log_end_msg 1 ;; # Failed to start
94 esac
95 ;;
96 *)
97 # Failed to stop
98 log_end_msg 1
99 ;;
100 esac
101 ;;
102 *)
103 echo "Usage: $SCRIPTNAME {start|stop|status|restart| force-reload}" >&2
104 exit 3
105 ;;
106 esac
保存并关闭文件。
选择可执行的脚本,启动服务,并在启动时启用它:
1sudo chmod +x /etc/init.d/davmail
2sudo service davmail start
3sudo update-rc.d davmail defaults
客户端配置
现在,服务器正在运行,您已经准备好配置您的电子邮件客户端。 使用您的电子邮件客户端的手动
选项创建一个新帐户。 IMAP 和 SMTP 服务器将是您的 dropplet 的域名或 IP 地址,取决于您在您的 SSL 证书上使用的共同名称。 IMAP 和 SMTP 的用户名将是您的电子邮件地址,而不是域名。 例如: 您的电子邮件是 [email protected],所以您的用户名是 bob。 请确保 IMAP 和 SMTP 都设置为使用 SSL/TLS 而不是 STARTTLS。
您将收到电子邮件客户端的警告,因为您正在使用自签证书. 在这种情况下,接受证书是安全的,因为您是创建证书的人。
Thunderbird、Mac OSX 和 iOS 的具体说明可在 DavMail 的网站找到。
您现在应该能够使用您的 Microsoft Exchange 电子邮件帐户使用开放技术发送/接收电子邮件!