我正在使用 Dovecot 2.2.13、Postfix 2.11.3 和 Roundcube 1.1.1 连接到它来设置邮件服务器。Roundcube 在 nginx/php-fpm 中的不同服务器上运行。两台服务器都运行带有最新更新的 Debian Jessie,并且可以互相 ping 通。来自 Roundcube 主机的 nmap 显示端口 993 已打开并可访问。此外,我似乎在正确的端口上建立了连接,但似乎无法让 Roundcube 成功连接到 Dovecot。
Dovecot 配置了在端口 993 上运行的以下 SSL 设置:
/etc/dovecot/conf.d/10-ssl.conf
ssl_protocols = TLSv1.2 TLSv1.1 TLSv1 !SSLv2 !SSLv3
ssl_cipher_list = ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES128:DH+AES:ECDH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5
Run Code Online (Sandbox Code Playgroud)
/etc/dovecot/dovecot.conf
auth_verbose=yes
auth_debug=yes
auth_debug_passwords=yes
mail_debug=yes
verbose_ssl=yes
auth_verbose_passwords=plain
Run Code Online (Sandbox Code Playgroud)
通过这些设置,我能够从 Android 邮件应用程序获得 TLS 连接并接收邮件,因此我知道 Dovecot 正在侦听并能够进行通信。Roundcube 托管在与 Dovecot 不同的服务器上,并使用以下关于 IMAPS 的设置进行配置。
$config['default_host'] = 'tls://mail.domain.tld';
$config['imap_conn_options'] => array(
'ssl' => array(
'ciphers' => 'ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES128:DH+AES:ECDH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5',
),
);
Run Code Online (Sandbox Code Playgroud)
成功登录在mail.log 中看起来像这样:
dovecot: imap-login: …
Run Code Online (Sandbox Code Playgroud)