Mailman
(2010.2.23-2022.4.20)
yumでインストールできる標準的なメーリングリスト.FedoraやApacheのコミュニティでも使われている.
(環境)CentOS 7, (CentOS6.5以前はこちら)
インストール
以下,プロンプトが#のコマンドはスパーユーザで,$は普通のユーザで実行.
インストール
# yum install mailman
管理Webページ
管理Webページの設定ファイル/etc/httpd/conf.d/mailman.confを編集。
# vi /etc/httpd/conf.d/mailman.conf
太字部分を追加して,管理用Webページをパスワード付きSSLにする。
<Directory /usr/local/mailman/cgi-bin/>
SSLRequireSSL
AllowOverride None
Options ExecCGI
Require all granted
AuthType Basic
AuthUserFile htpasswdで作成したパスワードファイル名
AuthName "Enter password"
Require user ユーザ名
</Directory>
保存書庫が文字化けしないように,以下をファイル末尾に追加する(metaタグで文字コードが指定できるように/etc/httpd/conf/httpd.confの AddDefaultCharset UTF-8 行をコメントアウトしておくこと)。
<Location “/mailman/private”>
AddDefaultCharset EUC-JP
</Location>
設定を反映させるためにhttpdを再起動.
# systemctl restart httpd
mailman用ロゴファイルをhttpdのアイコンディレクトリへコピー
# cp /usr/lib/mailman/icons/* /var/www/icons/
設定ファイル編集
以下では,#で始まるコメント行に日本語が使ってあるが,設定ファイルに日本語は使えないので,実際にはコメント行を入れないこと。この設定が作成するメーリングリストのデフォルト設定になる。
# vi /usr/lib/mailman/Mailman/mm_cfg.py
#以下は追加
#日本語をデフォルトにする
DEFAULT_SERVER_LANGUAGE = 'ja'
#Web設定をSSLでおこなう
DEFAULT_URL_PATTERN = 'https://%s/mailman/'
#DEFAULT_LIST_ADVERTISED = No
#Webからメーリングリストを削除できる
OWNERS_CAN_DELETE_THEIR_OWN_LISTS = Yes
#メーリングリストの件名を指定する
DEFAULT_SUBJECT_PREFIX = "[%(real_name)s:%%d] "
#メンバー以外からの投稿を拒否する
DEFAULT_GENERIC_NONMEMBER_ACTION = 2
#メッセージのフッタをなくす.
DEFAULT_MSG_FOOTER = ""
#DEFAULT_MSG_FOOTER = """_______________________________________________
#%(real_name)s mailing list
#%(real_name)s@%(host_name)s
#%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
#"""
#毎月パスワード備忘通知を送らない
DEFAULT_SEND_REMINDERS = No
#新入会員に歓迎メールを出さない
DEFAULT_SEND_WELCOME_MSG = No
#退会する会員にお別れのメールを出さない
DEFAULT_SEND_GOODBYE_MSG = No
#投稿された記事の返信先をメーリングリストにする
DEFAULT_REPLY_GOES_TO_LIST = 1
#投稿メール本文の最大サイズを無制限にする
DEFAULT_MAX_MESSAGE_SIZE = 0
#リスト会員に内容が重複するメールを送る
DontReceiveDuplicates = 0
#保存書庫を会員に限定
DEFAULT_ARCHIVE_PRIVATE = 1
#保存書庫の巻を作成する頻度。0 は年毎、1 は月毎、2 は四半期毎、3 は週毎、4 は日毎
DEFAULT_ARCHIVE_VOLUME_FREQUENCY = 0
#普通配送メールの添付ファイルを保管しない
DEFAULT_SCRUB_NONDIGEST = False
管理者パスワードの設定
端末の受信文字コードをEUCにして,以下のコマンドを入力し,端末の受信文字コードを元に戻す.それぞれ,サイト管理者,リスト作成者のパスワード.
# /usr/lib/mailman/bin/mmsitepass
# /usr/lib/mailman/bin/mmsitepass -c
管理用メーリングリストmailman作成
端末の受信文字コードをEUCにして,以下のコマンドを入力し,端末の受信文字コードを元に戻す.指示通りに表示された文字列を/etc/aliasesファイルに貼り付け,newaliasesコマンドを実行する.
# /usr/lib/mailman/bin/newlist mailman
# vi /etc/aliases
## mailman mailing list
mailman: "|/var/mailman/mail/mailman post mailman"
mailman-admin: "|/var/mailman/mail/mailman admin mailman"
mailman-bounces: "|/var/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/var/mailman/mail/mailman confirm mailman"
mailman-join: "|/var/mailman/mail/mailman join mailman"
mailman-leave: "|/var/mailman/mail/mailman leave mailman"
mailman-owner: "|/var/mailman/mail/mailman owner mailman"
mailman-request: "|/var/mailman/mail/mailman request mailman"
mailman-subscribe: "|/var/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/var/mailman/mail/mailman unsubscribe mailman"
# newaliases
mailman起動
mailmanを起動し,また,システム起動時にmailmanが自動起動するように設定する.
# systemctl start mailman
# systemctrl enable mailman
運用
メーリングリストの管理
ブラウザからhttps://xxxx/mailman/listinfoへアクセスして,メーリングリストの管理や作成をおこなう.ただし,削除はコマンド
# /usr/lib/mailman/bin/rmlist -a メーリングリスト名
で行い,/etc/aliasesに追加した行をエディタで削除する.
連番の変更
メーリングリストの件名につく連番を変更するには.以下はメーリングリストxxxの連番を100にする例.最後にCtrl+Dでぬける.
# cd /usr/lib/mailman/bin/
# ./withlist xxx
xxx のリストを読み込中 (ロック解除)
変数 `m' が xxx の MailList インスタンスです
>>> m.Lock()
>>> m.post_id
4.0
>>> m.post_id=100
>>> m.Save()
>>>
リストをロック解除 (保存はしてません): xxx
最終処理中
設定のコピー
メーリングリストの設定を保存し,別のメーリングリストにコピーするには.以下はメーリングリストml1の設定をml2にコピーする例.
# cd /usr/lib/mailman/bin/
# ./config_list -o myconf ml1
ml1に固有の設定をコメントアウトする.
# vi myconf
######real_name = 'ml1'
######subject_prefix = '[ml1:%d] '
# ./config_list -i myconf ml2
新サーバーへのデータと設定の移行
Mailmanを新しいサーバーにインストールし(上記インストールと管理Webページの項),設定を編集し,旧サーバーから次のディレクトリをrsyncでコピーする。
rsync -a 旧サーバ名:/etc/mailman/ /etc/mailman/
rsync -a 旧サーバ名:/var/lib/mailman/ /var/lib/mailman/
そして,旧サーバーの/etc/aliasesにあるmailman用の設定部分を,新サーバーの/etc/aliasesにコピー&ペーストしてnewaliasesコマンドで変更を反映する。そして,ブラウザからhttps://xxxx/mailman/listinfoへアクセスして,移行されたはずのメーリングリストを確認する。
参考
Mailman, GNU メーリングリスト管理システム (http://mm.tkikuchi.net/index.html) 2009.1現在
mailman-2.1.5-7(+sendmail) (http://www.nina.jp/server/redhat/mailman/mailman-2.1.5-7.html) 2009.1現在
mailmanのweb interfaceをssl対応に (http://d.hatena.ne.jp/afro/20081215) 2009.1現在
メーリングリストサーバー構築(sendmail+Mailman) (http://centossrv.com/sendmail-mailman.shtml) 2009.1現在
Mailmanでメーリングリスト - ひとがじり (ここ) 2009.1現在
Mailmanのデータを移行する (http://blog.development-network.net/ung/2011/05/mailman_3.html)2014.1現在
Mailman日本語情報 (http://docs.python.jp/contrib/mailman/index.html) 2014.3現在