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_urlfix_url.py を呼び出す
  • --urlhost=aq3.ispace.co.jp:このホスト名に基づいて web_page_urlhost_name を更新
✅ 実行後の確認
  1. admindb ページの <FORM action="...">https://aq3.linuxexpert.ne.jp/... になっているか確認
  2. 通知メールの承認リンクが HTTPS に変わっているか確認
  3. 保留処理が正常に動作するかテスト
🧠 なぜ fix_url.pywithlist 経由で実行するのか?

Mailman 2.1では、各メーリングリストの設定(URLホスト名やメールホスト名など)はリストごとの内部データ構造(Pythonオブジェクト)として保存されています。これらのオブジェクトに安全にアクセス・変更するために、Mailmanは専用のラッパーコマンド withlist を提供しています。

🔍 withlist の役割
  • リストのPythonオブジェクトを読み込み
  • 必要に応じてロックを取得(-l オプション)
  • 指定されたスクリプト(ここでは fix_url)をそのオブジェクトに対して実行
  • 実行後にオブジェクトを保存して終了
🛠 fix_url.py の目的

fix_url.py は以下のような場面で使われます:

  • mm_cfg.pyDEFAULT_URL_PATTERN を変更した後に、既存リストの web_page_url を更新する
  • リストを別の仮想ホストに移動したいとき(複数ドメイン運用時)
  • メール通知やWebフォームのURLが古いホスト名のままになっているとき