メーリングリストプログラムの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)