mailmanの保留処理エラー action先がhttp接続になっている
mailmanの保留通知が来て、破棄・承認・拒否など実行しても反映されないことがある。Apacheの設定などを変更しているとたまにバグるらしい。まず、保留ページのHTMLソースを見て、action先がどうなっているか確認しよう。http接続しようとしている場合は次のように処置する。
# ./mailman-config
Configuration and build information for Mailman
Mailman version: 2.1.30
Build Date: Tue Oct 17 06:27:27 EDT 2023
prefix: /usr/lib/mailman
var_prefix: /var/lib/mailman
mailman_user: mailman
mailman_group: mailman
mail_group: "mail", "postfix", "mailman", "nobody", "daemon"
cgi_group: "apache"
configure_opts: "--libdir=/usr/lib --prefix=/usr/lib/mailman --with-var-prefix=/var/lib/mailman --with-config-dir=/etc/mailman ・・・"version2である
#vi /etc/mailman/mm_cfg.py
DEFAULT_URL_HOST = 'aq3.linuxexpert.ne.jp'
DEFAULT_EMAIL_HOST = 'aq3.linuxexpert.ne.jp'
DEFAULT_NONDIGESTABLE = Yes
DEFAULT_URL_PATTERN = 'https://%s/mailman/'
DEFAULT_URL_PATTERN = 'https://%s/mailman/' を追加
sudo /usr/lib/mailman/bin/withlist -l -r fix_url [LIST名] --urlhost=aq3.linuxexpert.ne.jp
Importing fix_url...
Running fix_url.fix_url()...
Loading list [LIST名] (locked)
Saving list
Finalizing
🔍 オプションの意味
-l:ロックを取得して安全にリストを操作-r fix_url:fix_url.pyを呼び出す--urlhost=aq3.ispace.co.jp:このホスト名に基づいてweb_page_urlとhost_nameを更新
✅ 実行後の確認
admindbページの<FORM action="...">がhttps://aq3.linuxexpert.ne.jp/...になっているか確認- 通知メールの承認リンクが HTTPS に変わっているか確認
- 保留処理が正常に動作するかテスト
🧠 なぜ fix_url.py を withlist 経由で実行するのか?
Mailman 2.1では、各メーリングリストの設定(URLホスト名やメールホスト名など)はリストごとの内部データ構造(Pythonオブジェクト)として保存されています。これらのオブジェクトに安全にアクセス・変更するために、Mailmanは専用のラッパーコマンド withlist を提供しています。
🔍 withlist の役割
- リストのPythonオブジェクトを読み込み
- 必要に応じてロックを取得(
-lオプション) - 指定されたスクリプト(ここでは
fix_url)をそのオブジェクトに対して実行 - 実行後にオブジェクトを保存して終了
🛠 fix_url.py の目的
fix_url.py は以下のような場面で使われます:
mm_cfg.pyのDEFAULT_URL_PATTERNを変更した後に、既存リストのweb_page_urlを更新する- リストを別の仮想ホストに移動したいとき(複数ドメイン運用時)
- メール通知やWebフォームのURLが古いホスト名のままになっているとき

