有哪些选项可以在 Webmail 中透明地更改用户名?

Ern*_*nie 7 dovecot webmail

目前,我们有一个功能齐全的 POP/IMAP/Webmail 系统(使用 Dovecot 和 Roundcube),它的预期设计是一座闪闪发光的完美之塔。我们有数以千计的客户属于“默认”域(我将其称为 ourdomain.com),并使用用户名和密码成功登录。我们还有几千人拥有我们托管的域,他们使用完整的电子邮件地址和密码(称为 customerdomain.com)成功登录。自 1990 年代以来就是这种方式,有很多根深蒂固的客户配置。

现在的问题是,人们习惯于使用完整的电子邮件地址登录 Web 表单,必须提醒使用 ourdomain.com 的人使用其用户名登录 Webmail 。这是我们的技术支持部门每周接到几次的电话(即使我这样做也很内疚,我只是不打电话给技术支持),可能应该通过某种软件解决方案来消除。

那么我们如何让 Roundcube 或 Dovecot 将“username@ourdomain.com”识别为“username”,而不必更改系统中每个人的实际用户名?但只有在域是“ourdomain.com”而不是“customerdomain.com”时才这样做。请记住,每次我们进行安全升级时,我们所做的任何自定义编码都必须重新实现,我们只会将该选项视为最后可能的选择。

特尔;博士:

我们需要这样的逻辑:

if $email contains @ourdomain.com
{
    remove @ourdomain.com;
    submit to roundcube;
} else {
    submit to roundcube;
}
Run Code Online (Sandbox Code Playgroud)

mas*_*oeh 5

这个问题可以在 roundcube、dovecot 或您的用户名后端解决。

  1. 如果没有提供域(由Kondybas提出),Roundcube 可以选择自动附加域部分。但在你的情况下它不会太有用。当然,您可以修补圆形立方体(使用 PHP 语言)来添加您的逻辑。

  2. Dovecot 可以选择剥离域(如使用 username@domain 格式时 Dovecot 用户查找失败中所建议的那样 ),但它不能进行条件剥离(例如,如果域 = @ourdomain.com,则剥离域)。当然,您可以修补 dovecot(使用 C 语言)以添加您的逻辑。

  3. 用户名后端也是选项。您没有提供您使用的后端(SQL、LDAP、自定义引擎)。我可以想象你的 username 列有两种格式,有和没有 domain。现在,您可以将所有没有域的用户名转换为 username@ourdomain。您可以将此过程与选项 1(圆形立方体自动附加域)结合使用,以便 username 和 username@ourdomain 可以登录。