Dovecot
允許 Roundcube 的 IMAP 和僅針對某些特殊使用者的外部服務。如何配置?
在 dovecot 中設置一個特殊的 passdb 查詢來限制對某些使用者的 IMAP 訪問很容易,例如,請參閱 dovecot wiki 上的此文件。
但是當我使用像 Roundcube 這樣的 webmailer 並希望允許所有其他使用者使用它時(而不僅僅是我允許按照上述方法使用 IMAP 的使用者)這種方法失敗了。
什麼是可行的配置想法?
*webmailer 與 dovecot 位於同一台伺服器上。*也許是一個特製的 SQL-passdb-statement 以及一個 allow_nets 額外欄位到所有 webmailer-only 使用者的本地地址?還是 Roundcube 本身的特殊選項?
我找到了一種不涉及額外欄位成本的方法,而是使用一個簡單的變數“%r”。它解析為遠端 ip,所以我可以使用類似的東西
WHERE active = '1'\ AND ('%s' = 'pop3' OR (imap_allowed = true OR '%r' = '1.2.3.4'))
首先測試預設情況 pop3(通過 ‘%s’),然後
- 誰總是被允許使用 IMAP?(表中的 imap_allowed 列)
- 或誰使用 webmailer(遠端 ip == webmailer ip)
allow_nets
您可以根據欄位在 MySQL 查詢中執行某種 CASE 語句,例如SELECT password CASE WHEN allow_nets = '127.0.0.1' OR <whatever you're using> THEN allow_imap = 'true' ELSE allow_imap = 'false' END FROM users WHERE userid = '%u' and active='1'
查看 CASE 聲明,我很確定我的想法實際上不會起作用,但這個想法應該是可靠的。