Linux

萬用字元後綴擷取別名以讓 dovecot 儲存電子郵件的例外

  • December 16, 2018

我已經配置後綴從 PostgreSQL ( virtual_alias_maps = pgsql:/etc/postfix/pgsql-virtual-alias-maps.cf) 讀取別名映射,我配置的每個域都有一個萬用字元/catch-all 規則。

可以使用更具體的別名將電子郵件重定向到新電子郵件(例如外部提供商),但我不知道如何告訴 postfix(告訴 dovecot)儲存特定電子郵件地址的電子郵件。

我發現的每個線上教程都假設我想將電子郵件重定向到系統上的某個真實使用者,我不希望我的系統上有幾百個新使用者。我想我有虛擬使用者。

只是為了進一步澄清,這些重定向是我想要實現的。(我已經嘗試在別名中使用使用者名而不是完整的電子郵件地址,但這不起作用,電子郵件沒有被儲存,所以必須有更多內容):

user@domain.com -> user@domain.org
user2@domain.email -> user2 (SMTP user's mailbox)
@domain.com -> catchall (SMTP user's mailbox)
@domain.email -> catchall (SMTP user's mailbox)
@domain.net -> user@external.com
user2@domain.com -> user2@domain.email
[... and a few hundred more ...] 

該解決方案還必須使用 unicode 電子郵件地址,我已經對 Postfix 愚蠢的 LATIN1 PGSQL 驅動程序感到非常惱火,該驅動程序在任何地方都沒有提到,當字元集不是 LATIN1 時,它甚至不會轉換為 punycode。

如果您需要任何其他詳細資訊,請告訴我。

別名真的需要 PostgreSQL 後端嗎?這對於 Berkeley DB 來說相當簡單

virtual_alias_maps = hash:/etc/postfix/virtual

在此範例中,.comand.net是內部的,並且.org是外部的:

user@example.com   user@example.org
user2@example.com  user2
user2@example.net  user2
@example.com       catchall
@example.net       catchall

將地址和目的地視為簡單的配對,擺脫複雜的鏈,例如:

user2@domain.com --> user2@domain.net --> user2

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