自从将我的服务器升级到最新版本的 Debian 后,roundcube (1.2.3) 就不再工作了。原来这是因为新版本的 PHP (5.6) 现在会检查它是否是有效证书。进一步研究后,我发现我可以将以下几行添加到我的 config.inc.php 文件中:
$config['imap_conn_options'] = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false
)
);
$config['smtp_conn_options'] = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false
)
);
我还有以下设置:
$config['default_host'] = 'tls://localhost';
我正在为多个域使用此 roundcube 安装,因此不想在此处放置特定域。我也不想为证书付费,因此想将 verify_peer 设置为 false。
当我尝试登录时,系统提示“登录失败”。syslog 显示以下错误:
Feb 8 10:55:19 server1 dovecot: imap-login: Disconnected (auth failed, 1 attempts in 2 secs): user=<office>, method=PLAIN, rip=::1, lip=::1, TLS, session=<D+K0ugdIigAAAAAAAAAAAAAAAAAAAAAB>
我想知道如果应该使用 TLS,这种方法 = PLAIN 是否会导致事情发生偏差。
我在后端设置了 dovecot/postfix,并在 mysql 数据库中设置了虚拟用户/域/别名。我尝试向这些地址发送消息,它们确实被重定向到正确的别名电子邮件地址。所以,据我所知,dovecot 和 postfix 工作正常。
我该如何修复这个问题?
答案1
我已经搞清楚了。我没有用用户名指定域。我不得不用以下行更新我的 roundcube config.inc.php 文件:
$config['username_domain'] = '%d';
这使得我可以从我的任何域(mail.domain1.com、mail.domain2.com 等)使用 roundcube,而无需在用户名框中指定域名。