メーリングリスト、mailman 2.1.29 セッティング

この記事は約13分で読めます。

メーリングリストプログラムのMailman 2.1系の最終版である mailman 2.1.29をQmail,CentOS,httpd 2.4 で構築していきたいと思います。

Mailmanインストール

# yum install python-setuptool
# yum install python-devel
# yum install python-dns.noarch

↑Python系のプログラムを入れます
# python --version
Python 2.7.5

↑mailman 2.1系は、Python の2.7系で稼働します。
# /etc/passwd
mailman:x:261:261::/home/mailman:/bin/bash

# /etc/group
mailman:x:261:

↑ID、グループを設定します。
# mkdir /home/mailman
# chown mailman.mailman /home/mailman/
# chmod g+s /home/mailman/
# chmod 775 /home/mailman/

↑mailmanのディレクトリを設定します。
# wget http://ftp.gnu.org/gnu/mailman/mailman-2.1.29.tgz
# cd mailman-2.1.29
# ./configure --prefix=/home/mailman/ --with-mail-gid=vchkpw --with-cgi-gid=nginx
# make
# make install

↑インストールをします。

–with-mail-gid=vchkpw
は、MTAが稼働するグループを指定します。
今回は、qmailなので、vchkpwを指定します。

–with-cgi-gid=nginx
は、WEBが稼働するグループを指定します。
nginxを指定します。
(実際は、apache(httpd)で動かします)

# cd /home/mailman/
# bin/check_perms -f

↑上記、コマンドを何回か、繰り返してエラーがなくなるまで実行します。

初期メーリングリストを設定 (2019/07/14 追加)

# /home/mailman/bin/newlist Mailman@ドメイン名 通知アドレス パスワード

↑「Mailman」というメーリングリストを作成します。
# /home/mailman/bin/list_lists 
1 matching mailing lists found:
    Mailman - [no description available]

↑listコマンドを実行すると、「Mailman」が作成されているのがわかります。

mailmanctl実行

# /home/mailman/bin/mailmanctl start

↑mailmanを実行します。
 4416 ?        Ss     0:00 /usr/bin/python /home/mailman/bin/mailmanctl start
 4417 ?        S      0:21 /usr/bin/python /home/mailman/bin/qrunner --runner=ArchRunner:0:1 -s
 4418 ?        S      0:22 /usr/bin/python /home/mailman/bin/qrunner --runner=BounceRunner:0:1 -s
 4419 ?        S      0:21 /usr/bin/python /home/mailman/bin/qrunner --runner=CommandRunner:0:1 -s
 4420 ?        S      0:21 /usr/bin/python /home/mailman/bin/qrunner --runner=IncomingRunner:0:1 -s
 4421 ?        S      0:21 /usr/bin/python /home/mailman/bin/qrunner --runner=NewsRunner:0:1 -s
 4422 ?        S      0:26 /usr/bin/python /home/mailman/bin/qrunner --runner=OutgoingRunner:0:1 -s
 4423 ?        S      0:21 /usr/bin/python /home/mailman/bin/qrunner --runner=VirginRunner:0:1 -s
 4424 ?        S      0:00 /usr/bin/python /home/mailman/bin/qrunner --runner=RetryRunner:0:1 -s

↑このようなプロセスが起動していればOKです。

centos7用起動ファイル (2019/04/15追記)

# vi /etc/systemd/system/mailman.service

-----------------------------------------------
[Unit]
Description=mailman
After=network.target

[Service]
Type=simple
RemainAfterExit=yes
ExecStart=/home/mailman/bin/mailmanctl -s start
ExecStop=/home/mailman/bin/mailmanctl stop

[Install]
WantedBy=multi-user.target
-----------------------------------------------

↑「mailmanctl」コマンドに「-s」を起動しているのは、不用意な再起動でも、自動的に起動するようにと・・・
# systemctl start mailman
# systemctl enable mailman

↑サービスを起動させ、自動起動も設定します。

Mailman用WEB設定

メーリングリストのMailmanでは、メンバー登録などは、WEBで行われます。
(コマンドラインでもできますが、WEB画面のほうが便利かと思います)

apache (httpd) 2.4 系 ソースインストール

↑上記で、インストールしたapache (httpd)で、公開をします。

<VirtualHost XXX.XXX.XXX.XXX:8080>
ServerName (ドメイン名)
ServerAdmin (管理者メールアドレス)
DocumentRoot /home/xxxxxxxx/web
ScriptAlias  /mailman/ "/home/mailman/cgi-bin/"
Alias  /pipermail/ "/home/mailman/archives/public/"
Alias  /icons/ "/home/mailman/icons/"

<Directory "/home/mailman/archives/public/">
  AddDefaultCharset Off
</Directory>
CustomLog /home/xxxxxxxx/logs/access_log combined
ErrorLog /home/xxxxxxxx/logs/error_log
</VirtualHost>

↑VirtualHostで設定をします。
今回、80番ポートは、nginxで、公開して、Mailmanのサイトは、「8080」ポートで公開をします。
nginxで、mailmanのサイトを設定しようとしましたが、断念しました(笑)。
mailmanは、設定用なので、8080ポート等のプライベート系のサイトでも問題ないと判断しました。

8080用firewall設定

8080ポートをfirewallで設定します。

# cp /usr/lib/firewalld/services/http.xml /etc/firewalld/services/http-8080.xml

↑設定ファイルをコピーします。
vi /etc/firewalld/services/http-8080.xml

<port protocol="tcp" port="80"/>
 ↓
<port protocol="tcp" port="8080"/>

↑ポートを「8080」に変更します。
# firewall-cmd --permanent --add-service=http-8080
success

↑設定ファイルを登録します。
# firewall-cmd --reload
success
# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: dhcpv6-client ssh-xxxxx dns pop3 smtp-submission smtp pop3s smtps imap imaps https http ftp http-8080
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

↑8080ポートが外部からアクセス可能になりました。

メーリングリスト登録

# /home/vpopmail/bin/vadddomain (ドメイン)

↑サーバーにドメインが受信できるように登録をしておきます。

次に、メーリングリスト自体を設定します。

test@(ドメイン)を、「投稿先」とします。

# /home/mailman/bin/newlist test@(ドメイン) (管理者メールアドレス) (パスワード)

↑初期登録をコマンドラインから行います。
To finish creating your mailing list, you must edit your /etc/aliases (or
equivalent) file by adding the following lines, and possibly running the
`newaliases' program:

↑上記のメッセージが表示されて、「リターンキー」を押すと、「管理者メールアドレス」
に、設定のメールが来ます。

Qmail用セッティング

Postfix用のセッティングは、以下の記事に!(2019/08/04追加)
MailmanとPostfixの連携 CentOS7

# cd /home/vpopmail/domains/(ドメイン)/

vi set_qmail_alias.sh
----------------------------------------
#!/bin/sh
if [ $# = 1 ]; then
    i=$1
    echo "|/var/qmail/bin/preline /home/mailman/mail/mailman post $i" > .qmail-$i
    echo "|/var/qmail/bin/preline /home/mailman/mail/mailman admin $i" > .qmail-$i-admin
    echo "|/var/qmail/bin/preline /home/mailman/mail/mailman bounces $i" > .qmail-$i-bounces
    echo "|/var/qmail/bin/preline /home/mailman/mail/mailman bounces $i" > .qmail-$i-bounces-default
    echo "|/var/qmail/bin/preline /home/mailman/mail/mailman confirm $i" > .qmail-$i-confirm
    echo "|/var/qmail/bin/preline /home/mailman/mail/mailman join $i" > .qmail-$i-join
    echo "|/var/qmail/bin/preline /home/mailman/mail/mailman leave $i" > .qmail-$i-leave
    echo "|/var/qmail/bin/preline /home/mailman/mail/mailman owner $i" > .qmail-$i-owner
    echo "|/var/qmail/bin/preline /home/mailman/mail/mailman request $i" > .qmail-$i-request
    echo "|/var/qmail/bin/preline /home/mailman/mail/mailman subscribe $i" > .qmail-$i-subscribe
    echo "|/var/qmail/bin/preline /home/mailman/mail/mailman unsubscribe $i" > .qmail-$i-unsubscribe
fi
----------------------------------------

↑aliasの設定が簡単になるように、shスクリプトを用意しておきます。(独自)
# sh set_qmail_alias.sh test

↑ test@ドメイン
が、メーリングリストの投稿先の場合、「set_qmail_alias.sh」の引数に、投稿メールアドレスの「@」の前を指定します。
# chown vpopmail.vchkpw .qmail-test*
# chmod go-r .qmail-test*

↑パーミッション関係を調整します。
-rw------- 1 vpopmail vchkpw   61 Apr XX XX:XX .qmail-test
-rw------- 1 vpopmail vchkpw   62 Apr XX XX:XX .qmail-test-admin
-rw------- 1 vpopmail vchkpw   64 Apr XX XX:XX .qmail-test-bounces
-rw------- 1 vpopmail vchkpw   64 Apr XX XX:XX .qmail-test-bounces-default
-rw------- 1 vpopmail vchkpw   64 Apr XX XX:XX .qmail-test-confirm
-rw------- 1 vpopmail vchkpw   61 Apr XX XX:XX .qmail-test-join
-rw------- 1 vpopmail vchkpw   62 Apr XX XX:XX .qmail-test-leave
-rw------- 1 vpopmail vchkpw   62 Apr XX XX:XX .qmail-test-owner
-rw------- 1 vpopmail vchkpw   64 Apr XX XX:XX .qmail-test-request
-rw------- 1 vpopmail vchkpw   66 Apr XX XX:XX .qmail-test-subscribe
-rw------- 1 vpopmail vchkpw   68 Apr XX XX:XX .qmail-test-unsubscribe

↑上記のようになります。

Mailman設定(WEB上)

Web上での設定です。

設定後、送られてきたメールに書かれたURLにアクセスをします。

↑最初にアクセスをすると、上記のような画面になります。パスワードを入れます。

↑画面の言語を「日本語」に設定します。上記の「Language options」を選びます。

↑「Japanese」をチェックします。

↑画面下の「Submit Your Changes」を押します。

↑「Default language for this list」のところに「Japanease」が出てきますので、「Japanease」を選びます。そして、再度画面下の「Submit Your Changes」を押します。

↑画面が日本語になりました。

↑メンバーの登録を行う場合、上記の「まとめて入会登録」から登録を行います。

その他の細かな設定は、割愛します。

Mailman、メーリングリストへの投稿(運用開始)

これで、「test@(ドメイン)」宛てにメールを送ると、メンバーに配信されます。

関連記事

Mailman 2.1.34へのアップデートとcgid_module(2020/11/01)

 

タイトルとURLをコピーしました