mailman 是很常用的郵件列表系統,它有一個 CGI 式的 web-based 管理頁面,包含了許多的功能連結。
一般來說,一旦安裝好了 mailman,我們就不會再去動這台主機了。不過事必有例外,如果我們的郵件主機移動了,同時連 domain name 都要更改的時候,在 mailman 的 mm_cfg.py 裡也要把相關的 domain 字串一起改掉,例如
DEFAULT_HOST_NAME DEFAULT_EMAIL_HOST DEFAULT_URL_HOST
等等。
Note
你也會在 Default.py 裡找到這些設定,但請遵照 mailman manual 的指示,把自訂的設定改在 mm_cfg.py,不要碰預設值為佳。
不過,對已經建好的列表來說,修改 mm_cfg.py 的設定不會影響網頁介面的連結。主要的 email 子系統應該會辨認出 mm_cfg.py 的設定,但 CGI 的管理頁面則會取用 mailing list 資料庫裡的 URL 設定,不會從 mm_cfg.py 抓 URL 資料。
因此,當 mailing list 主機的 domain name 變更了以後,要把各 mailman list 資料庫裡的 URL 資料也修改掉,列表管理員在管理頁面裡才會得到正確的管理連結 (連結不正確的話,管理員就苦了)。
那麼,list 資料庫的 URL 要怎麼改呢?在管理網頁上是沒有地方可以修改的,因為 mailman 不預期這是常用的設定,所以不提供網頁介面。我們必須使用 mailman 提供的 bin/config_list 工具來修改這個設定。
請進入 mailman 目錄,在其中新建一個檔案 (取名為 webdata 好了),內容為:
web_page_url = 'http://the.moved.host/mailman-relocation/'
(當然,你要把 URL 的內容取代成適合的值)。然後執行 (as mailman):
$ bin/config_list -i webdata yourlist
yourlist 意指要修改的郵件列表。一跑之後,你會得到以下的結果:
$ bin/config_list -i webdata yourlist Non-standard property restored: web_page_url
瞧,mailman 不太喜歡我們改這個值呢!再進入管理頁面,你就會得到正確的連結表了。