AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 647032
Accepted
Ernie
Ernie
Asked: 2014-11-26 11:16:54 +0800 CST2014-11-26 11:16:54 +0800 CST 2014-11-26 11:16:54 +0800 CST

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

  • 772

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

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

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

TL;博士:

我们需要这样的逻辑:

if $email contains @ourdomain.com
{
    remove @ourdomain.com;
    submit to roundcube;
} else {
    submit to roundcube;
}
dovecot
  • 2 2 个回答
  • 306 Views

2 个回答

  • Voted
  1. Best Answer
    masegaloeh
    2014-11-26T19:09:47+08:002014-11-26T19:09:47+08:00

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

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

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

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

    • 5
  2. Kondybas
    2014-11-26T12:21:06+08:002014-11-26T12:21:06+08:00

    RoundCube有一个选项叫username_domain

    // Automatically add this domain to user names for login
    // Only for IMAP servers that require full e-mail addresses for login
    // Specify an array with 'host' => 'domain' values to support multiple hosts
    // Supported replacement variables:
    // %h - user's IMAP hostname
    // %n - hostname ($_SERVER['SERVER_NAME'])
    // %t - hostname without the first part
    // %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)
    // %z - IMAP domain (IMAP hostname without the first part)
    // For example %n = mail.domain.tld, %t = domain.tld
    $config['username_domain'] = '';
    

    如果您使用过子目录(如ourdomain.tld/roundcube),请将此选项设置为

    $config['username_domain'] = '%n';
    

    如果您使用过子域(如mail.domain.tld),请将此选项设置为

    $config['username_domain'] = '%t';
    

    当用户提供他的完整电子邮件作为登录时,该电子邮件将被使用而无需任何更改。如果省略域部分,RoundCube将使用 URL 域来完成。roundcube 的配置中还有许多简洁的选项。

    • 3

相关问题

  • Dovecot 损坏的事务日志文件正在延迟电子邮件

  • 任何关于如何在 Debian 上使用虚拟用户设置 Postfix + Dovecot 的最新教程?[关闭]

  • CentOS/Dovecot/Postfix 服务器不再允许外部电子邮件客户端发送电子邮件

  • 推荐 Dovecot / Thunderbird 到 Exchange / Outlook 迁移策略

  • 更改 Dovecot 的 IMAP 端口

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve