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へアクセスして,移行されたはずのメーリングリストを確認する。

参考

  1. Mailman, GNU メーリングリスト管理システム (http://mm.tkikuchi.net/index.html) 2009.1現在

  2. mailman-2.1.5-7(+sendmail) (http://www.nina.jp/server/redhat/mailman/mailman-2.1.5-7.html) 2009.1現在

  3. mailmanのweb interfaceをssl対応に (http://d.hatena.ne.jp/afro/20081215) 2009.1現在

  4. メーリングリストサーバー構築(sendmail+Mailman) (http://centossrv.com/sendmail-mailman.shtml) 2009.1現在

  5. Mailmanでメーリングリスト - ひとがじり (ここ) 2009.1現在

  6. Mailmanのデータを移行する (http://blog.development-network.net/ung/2011/05/mailman_3.html)2014.1現在

  7. Mailman日本語情報 (http://docs.python.jp/contrib/mailman/index.html) 2014.3現在