機能 
 構成・方式 
 タスク 
 導入 
    CentOS 7
    インストール
    ユーザー
    パスワードを作成
    設定
    設定確認
    aliases初期化
    Postfix
    ウェブサーバ
    サイト全体のML
    パスワードを作成
    cron
    確認
    Defaults.py
 クラスタ化など 

 CentOS 7
 ・CentOS 7の公式リポジトリのMailman
$ yum info mailman     名前       : mailman     アーキテクチャー : x86_64     バージョン     : 2.1.15     リリース       : 30.el7     リポジトリー    : base/7/x86_64
 インストール
# yum install mailman
依存関連(インストール)
httpd-2.4.6
httpd-tools-2.4.6
自身でビルドする場合は、GIDに注意
Mailman 2.1 には Python 2.1 以上必要
# rpm -qa | grep mailman
mailman-2.1.15-30.el7.x86_64

 グループとユーザの確認
 ・パッケージの場合は、作成済を確認

 リスト作成用パスワードを作成(変更)
 ・/etc/mailman/adm.pwファイル
# /usr/lib/mailman/bin/mmsitepass xxxxxxxx

 設定(/etc/mailman/mm_cfg.py)
 ・/usr/lib/mailman/Mailman/Defaults.py で、変更するものだけを上書き
「from Defaults import *」
 ・mm_cfg.pyファイルの最後に追加(例)     DEFAULT_EMAIL_HOST = 'mail.xxxx.xx'     DEFAULT_URL_HOST = 'www.xxxx.xx'     add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)     DEFAULT_URL_PATTERN = 'https://%s/mailman/'     MTA = 'Postfix'         Mailman/MTA ディレクトリにあるモジュールの 名前を指定         リストが作成/削除されるときに 実行される, メールサーバ固有の関数がある。     DEFAULT_SERVER_LANGUAGE = 'ja'     OWNERS_CAN_DELETE_THEIR_OWN_LISTS = Yes         Web上からMLを削除可能     DEFAULT_NEW_MEMBER_OPTIONS = 256         投稿した本人にはメールを送らない     DEFAULT_LIST_ADVERTISED = No         メーリングリスト一覧を非公開     DEFAULT_SUBJECT_PREFIX = "[%(real_name)s:%%d] "         件名に記事№を付加する     DEFAULT_GENERIC_NONMEMBER_ACTION = 2         非会員からのメールには拒否応答     DEFAULT_REPLY_GOES_TO_LIST = 1         返信先を投稿者ではなくリストにする  ・# diff
 設定確認・修正
# /usr/lib/mailman/bin/check_perms -f
/usr/lib/mailman/Mailman/mm_cfg.pyc グループの誤り
   (root ですが mailman にしてください) (修正中)
/usr/lib/mailman/bin/mailman-update-cfg グループの誤り
   (root ですが mailman にしてください) (修正中)
問題があります: 2
修正するには -f オプションをつけて mailman か root の権限で実行してください
# /usr/lib/mailman/bin/check_perms -f
問題ありません

 aliases初期化
 ・Defaults.pyファイルのコマンド変数の値を確認     POSTFIX_ALIAS_CMD = '/usr/sbin/postalias'     POSTFIX_MAP_CMD = '/usr/sbin/postmap'         postalias と postmap プログラム を指している。         変更が必要の場合は mm_cfg.py の中で行う。  ・genaliasesスクリプトを実行して、aliasesファイルを初期化     # cd /usr/lib/mailman/bin     # ./genaliases  ・/etc/mailman/aliasesと/etc/mailman/aliases.db の所有者がmailman、\
  グループ所有者がmailman     # chown mailman:mailman /etc/mailman/aliases*     # chmod g+w /etc/mailman/aliases* 又は設定確認・修正を再実行
# /usr/lib/mailman/bin/check_perms -f
# ls -l /etc/mailman/
-rw-rw---- 1 mailman mailman 355 12月 7 18:37 aliases
-rw-rw---- 1 mailman mailman 12288 12月 7 18:37 aliases.db
 ・Postfixのmain.cfファイルのコメントアウト変更

 Postfixメールサーバを使う場合
 ・mailman-ownerを受ける。
/etc/aliases 追加
# Person who should get root's mail
mailman-owner: root
root: [email protected]
 ・「-owner」と「-request」のアドレスを特殊扱いしないでMailman に届けてもらう。
「main.cf」追加 owner_request_special = no
 ・VERP形式(送信者アドレスの拡張アドレス部に宛先アドレスの情報を埋め込む。)を有効にする。
「main.cf」追加 recipient_delimiter = +
 ・存在しないローカルユーザについて恒久的なエラーコード を返す。
「main.cf」unknown_local_recipient_reject_code = 550 (デフォルト)
 ・「/etc/mailman/aliases」を追加
「main.cf」追加
alias_maps = hash:/etc/aliases, hash:/etc/mailman/aliases, hash:/etc/postfix/aliases
alias_database = hash:/etc/aliases, hash:/etc/mailman/aliases, hash:/etc/postfix/aliases

 Apache(ウェブサーバ)の設定
 ・Mailman のウェブインタフェースをウェブサーバに接続する。
 ・mailman.conf (デフォルト、/etc/httpd/conf.d/mailman.conf)
httpd configuration settings for use with mailman.
パッケージインストールしたマシンに、Apacheが有れば、/etc/httpd/conf.d/に存在する。
httpd.conf に IncludeOptional conf.d/*.conf が有ることを確認
 ・PostfixとApacheを別のマシンで動かして、MailmanをNFS経由で共有
 ・ウェブサーバの設定で、/usr/lib/mailman/cgi-bin/ に CGI スクリプトの実行許可     ScriptAlias /mailman/ /usr/lib/mailman/cgi-bin/     <Directory /usr/lib/mailman/cgi-bin/>      AllowOverride None      Options ExecCGI      Require all granted     </Directory>  ・CGIスクリプトを実行するユーザIDが mailman グループに入っていないこと。
非公開の保存書庫が誰にでも見られないように
 ・Mailman、Python、GNUのロゴをWebサーバのアクセス可能なところにコピー
mailman/mm_cfg.py にロゴのベースディレクトリを書いた行を追加
必要なロゴ ( /usr/lib/mailman/icons/ )を /usr/share/httpd/icons にコピー
 ・Pipermailの公開メーリングリスト保存書庫を参照できるようにWebサーバを設定     Alias /pipermail/ /var/lib/mailman/archives/public/     <Directory /var/lib/mailman/archives/public>      Options MultiViews FollowSymLinks      AllowOverride None      Require all granted      AddDefaultCharset Off     </Directory>
 サイト全体のメーリングリスト(サイトリスト)作成
 ・デフォルト「mailman」という名前のリスト作成
 ・パスワード備忘通知の発信者
 ・mailmanサイトリストを作成     # /usr/lib/mailman/bin/newlist mailman     標準でない値を修復: personalize  ・サイトリストの設定
 ・サイトリストのひな形「/var/lib/mailman/data/sitelist.cfg」を使用
 ・mailmanメーリングリスト初期設定(ひな形の「mailman」への適用)     # /usr/lib/mailman/bin/config_list -i /var/lib/mailman/data/sitelist.cfg mailman     標準でない値を修復: personalize  ・sitelist.cfg のオプションを適用の後、 リストの管理ページで確認

 cron
 ・「/usr/lib/mailman/cron/crontab.in」を「/etc/cron.d/mailman」にコピー

 確認
 ・mailman と同梱された apache を起動して確認
$ curl localhost:/mailman/listinfo

 Defaults.py
 ・一部     # -*- python -*-     import os     def seconds(s): return s     def minutes(m): return m * 60     def hours(h): return h * 60 * 60     def days(d): return d * 60 * 60 * 24     try:      True, False     except NameError:      True = 1      False = 0     Yes = yes = On = on = True     No = no = Off = off = False     IMAGE_LOGOS = '/icons/'     SHORTCUT_ICON = 'mm-icon.png'     MAILMAN_URL = 'http://www.gnu.org/software/mailman/index.html'     DEFAULT_EMAIL_HOST = 'localhost.localdomain'     DEFAULT_URL_HOST = 'localhost.localdomain'     DEFAULT_URL_PATTERN = 'http://%s/mailman/'     DEFAULT_HOST_NAME = None     DEFAULT_URL = None     HOME_PAGE = 'index.html'     MAILMAN_SITE_LIST = 'mailman'     ALLOW_SITE_ADMIN_COOKIES = No     AUTHENTICATION_COOKIE_LIFETIME = 0     FORM_LIFETIME = hours(1)     HTML_TO_PLAIN_TEXT_COMMAND = '/usr/bin/lynx -dump %(filename)s'     ACCEPTABLE_LISTNAME_CHARACTERS = '[-+_.=a-z0-9]'     VIRTUAL_HOSTS = {}     VIRTUAL_HOST_OVERVIEW = On     def add_virtualhost(urlhost, emailhost=None):      DOT = '.'      if emailhost is None:      emailhost = DOT.join(urlhost.split(DOT)[1:])      VIRTUAL_HOSTS[urlhost.lower()] = emailhost.lower()     add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)     KNOWN_SPAMMERS = []     WEB_BG_COLOR = 'white' # Page background     WEB_HEADER_COLOR = '#99ccff' # Major section headers     WEB_SUBHEADER_COLOR = '#fff0d0' # Minor section headers     WEB_ADMINITEM_COLOR = '#dddddd' # Option field background     WEB_ADMINPW_COLOR = '#99cccc' # Password box color     WEB_ERROR_COLOR = 'red' # Error message foreground     WEB_LINK_COLOR = '' # If true, forces LINK=     WEB_ALINK_COLOR = '' # If true, forces ALINK=     WEB_VLINK_COLOR = '' # If true, forces VLINK=     WEB_HIGHLIGHT_COLOR = '#dddddd' # If true, alternating rows      # in listinfo & admin display     BROKEN_BROWSER_WORKAROUND = No     BROKEN_BROWSER_REPLACEMENTS = {'\x8b': '‹', # single left angle quote '\x9b': '›', # single right angle quote '\xbc': '¼', # < plus high order bit '\xbe': '¾', # > plus high order bit '\xa2': '¢', # " plus high order bit }     DEFAULT_ARCHIVE = On     DEFAULT_ARCHIVE_PRIVATE = 0     ARCHIVE_TO_MBOX = 2     DEFAULT_ARCHIVE_VOLUME_FREQUENCY = 1     DEFAULT_DIGEST_VOLUME_FREQUENCY = 1     PUBLIC_EXTERNAL_ARCHIVER = No     PRIVATE_EXTERNAL_ARCHIVER = No     ARCHIVE_SCRUBBER = 'Mailman.Handlers.Scrubber'     SCRUBBER_DONT_USE_ATTACHMENT_FILENAME = True     SCRUBBER_USE_ATTACHMENT_FILENAME_EXTENSION = False     ARCHIVE_HTML_SANITIZER = 1     GZIP_ARCHIVE_TXT_FILES = No     ARCHIVER_CLOBBER_DATE_POLICY = 2     ARCHIVER_ALLOWABLE_SANE_DATE_SKEW = days(15)     ARCHIVER_OBSCURES_EMAILADDRS = Yes     DEFAULT_CHARSET = None     VERBATIM_ENCODING = ['iso-2022-jp']     PUBLIC_MBOX = No     DELIVERY_MODULE = 'SMTPDirect'     MTA = 'Manual'     POSTFIX_STYLE_VIRTUAL_DOMAINS = []     VIRTUAL_MAILMAN_LOCAL_DOMAIN = None     DEFAULT_EMAIL_HOSTPOSTFIX_ALIAS_CMD = '/usr/sbin/postalias'     DEFAULT_EMAIL_HOSTPOSTFIX_MAP_CMD = '/usr/sbin/postmap'