Dovecot

有哪些選項可以在 Webmail 中透明地更改使用者名?

  • November 27, 2014

目前,我們有一個功能齊全的 POP/IMAP/Webmail 系統(使用 Dovecot 和 Roundcube),在其預期設計中是一座閃閃發光的完美之塔。我們有成千上萬的客戶屬於一個“預設”域(我稱之為ourdomain.com),並使用使用者名和密碼成功登錄。我們還有幾千人擁有我們託管的域,他們使用完整的電子郵件地址和密碼(稱為 customerdomain.com)成功登錄。自 1990 年代以來一直如此,有很多根深蒂固的客戶配置。

現在的問題是人們習慣於使用完整的電子郵件地址登錄 Web 表單,必須提醒使用 ourdomain.com 的人使用他們的使用者名登錄 Webmail。這是我們的技術支持部門每週接到幾次電話(即使我也為此感到內疚,我只是不為此打電話給技術支持),並且可能應該通過某種軟體解決方案來消除。

那麼我們如何讓 Roundcube 或 Dovecot 將“username@ourdomain.com”辨識為“使用者名”,而無需更改我們系統中每個人的實際使用者名?但只有當域是“ourdomain.com”而不是“customerdomain.com”時才這樣做。請記住,每次我們進行安全升級時,我們所做的任何自定義編碼都必須重新實現,我們只會將該選項視為最後可能的選擇。

TL; 博士:

我們需要這樣的邏輯:

if $email contains @ourdomain.com
{
   remove @ourdomain.com;
   submit to roundcube;
} else {
   submit to roundcube;
}

這個問題可以在 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 都可以登錄。

引用自:https://serverfault.com/questions/647032