【Azureでメールサーバ #2】 Mailmanを利用し、メーリングリスト送信を実現する方法!!

こんにちは、以下記事にてAzure上のメールサーバ(Postfix / CentOS)からメール送信する方法をご紹介しました。

Azureからの送信メールを迷惑メールにさせない方法!! (Postfix / CentOS)

今回は、前回構築したサーバ上にメーリングリスト管理システム「Mailman」を導入し、
メーリングリスト(以降:ML)を利用して複数人にメール送信する方法をご紹介します。

【Azureでメールサーバ #1】 送信メールを迷惑メールにさせない方法!!
【Azureでメールサーバ #2】 Mailmanを利用し、メーリングリスト送信を実現する方法!! ← ここ
【Azureでメールサーバ #3】 Azure DNSを利用し、メールサーバを外部公開する方法!!
【Azureでメールサーバ #4】 メール送信者の「sendgrid.me 経由」を非表示にする方法!!

Mailman導入

Postfix が既に導入されている前提とします。
また、今回は通常ドメインとメーリングリスト用ドメインを分けて設定します。

● 通常ドメイン:siostest.com
● メーリングリスト用ドメイン:ml.siostest.com

以降はroot権限のあるユーザでの操作を想定しています。

インストール

必要なパッケージをインストールします。
Mailmanは基本Web画面でML追加削除などの操作を行うため、Apacheが自動でインストールされます。

# yum -y install mailman
(中略)
Installed:
mailman.x86_64 3:2.1.15-21.el7_1
Dependency Installed:
apr.x86_64 0:1.4.8-3.el7                           apr-util.x86_64 0:1.5.2-6.el7           httpd.x86_64 0:2.4.6-45.el7.centos
httpd-tools.x86_64 0:2.4.6-45.el7.centos           mailcap.noarch 0:2.1.41-2.el7           python-dns.noarch 0:1.12.0-2.20150617git465785f.el7

Mailman設定編集

Mailmanの設定ファイル(/etc/mailman/mm_cfg.py)を編集します。

# cd /etc/mailman/
# cp -p mm_cfg.py mm_cfg.py.org
# vim mm_cfg.py
# diff mm_cfg.py.org mm_cfg.py
< DEFAULT_URL_HOST   = fqdn
< DEFAULT_EMAIL_HOST = fqdn
> DEFAULT_URL_HOST   = "mailman.siostest.com"           #構築環境により変更
> DEFAULT_EMAIL_HOST = "ml.siostest.com"                #構築環境により変更
> MTA = 'Postfix'                                       #ローカルのPostfixを利用する
> DEFAULT_SERVER_LANGUAGE = 'ja'                        #デフォルト言語を日本語にする
> DEFAULT_SUBJECT_PREFIX = '[%(real_name)s:%%05d] '     #件名の前に [ML名:5桁通し番号] を付加する
> DEFAULT_LIST_ADVERTISED = No                          #管理画面でML名を非表示
> DEFAULT_GENERIC_NONMEMBER_ACTION = 0                  #非会員からの投稿を承認
> DEFAULT_SUBSCRIBE_POLICY = 2                          #入会にはML管理者の許可が必要
> DEFAULT_ARCHIVE = Off                                 #アーカイブを利用しない
> DEFAULT_DIGESTABLE = No                               #まとめ読みを利用しない
> OWNERS_CAN_DELETE_THEIR_OWN_LISTS = Yes               #Web画面にてML削除を許可する

Mailman初期操作

Mailmanを起動するために必要な初期操作を実施します。
まず、Postfixに読み込ませるaliasesファイルを生成します。

# cd /usr/lib/mailman/bin/
# ./genaliases
# ls /etc/mailman/aliases.db

ML管理用の認証パスワードを設定します。
この認証パスワードはMLを作成する際等に利用します。

# ./mmsitepass
New site password:[任意文字列]
Again to confirm password:[任意文字列]
Password changed.

各ファイルのパーミッションを補正します。
「No problems found」が表示されるまで何度か繰り返し実行します。

# ./check_perms -f
No problems found

管理用ML「mailman」を作成します。
認証パスワードは管理用ML「mailman」を編集する際等に利用します。

# ./newlist -q mailman
Enter the email of the person running the list: [ML管理者メールアドレス]
Initial mailman password:[任意文字列]

MailmanのWeb画面を表示するための設定ファイルが存在することを確認します。

# ls /etc/httpd/conf.d/mailman.conf
/etc/httpd/conf.d/mailman.conf

Postfix設定編集

ローカルのMailmanでアドレス展開するためのドメインを登録します。
また、Mailmanで生成したaliasesファイルを参照するように設定します。
以下は前回の更新箇所のみとなります。

# cd /etc/postfix/
# cp -p main.cf main.cf.`date +%Y%m%d`
# vim main.cf
# diff main.cf.`date +%Y%m%d` main.cf
< inet_interfaces = localhost
> inet_interfaces = all
< mydestination = $myhostname, localhost.$mydomain, localhost
> mydestination = $myhostname, localhost.$mydomain, localhost, ml.siostest.com   #構築環境により変更
< alias_maps = hash:/etc/aliases
> alias_maps = hash:/etc/aliases, hash:/etc/mailman/aliases

起動設定

MailmanとApacheの起動及びPostfixを再起動します。
また、OS起動時に自動起動するよう設定します。

# systemctl start mailman
# systemctl start httpd
# systemctl restart postfix
# systemctl enable mailman
# systemctl enable httpd

動作確認

ML作成

以下のWebアドレスにアクセスし、MLを作成します。

http://[パブリックIP or FQDN]/mailman/create

● リスト名:ML名
● リスト管理者アドレスの初期設定:リスト管理者のメールアドレス
● 初期リストパスワード:任意の文字列
● 初期パスワードの確認:上記文字列
● リスト作成者の認証パスワード:前項で作成した認証パスワード

上記入力後に「リストを作成する」ボタンをクリックします。

0113154556_0012

ML管理画面表示

以下のWebアドレスにアクセスし、ML管理用のWeb画面が表示されることを確認します。
ML作成時に設定したパスワードでログインし、「会員管理」より送信先のメールアドレスを登録します。

http://[パブリックIP or FQDN]/mailman/admin/[ML名]

0113162642_0012

送信確認

ローカルで以下コマンドを実行し、テストメールを送信します。

# echo "test mail" | mail -s "test mail" [ML名]@ml.siostest.com

送信先アドレスのメールボックスを確認します。

まとめ

今回は最小限の変更でMailmanを利用する方法をご紹介させて頂きました。
しかし今回ご紹介した設定で運用した場合、何かと不便かと思われます。
基本MTAはローカル環境に設置することが多く、Azure上のMailmanと連携する場合はドメインのMXレコードを適切に設定しかつ、Postfixの設定追加なども必要になると思います。
また、今回通常ドメインとML用ドメインを分けましたが、同じドメインで運用する場合はバーチャルエイリアスを適切に設定&管理する必要があります。
メーリングリスト送信は非常に便利ですので、検討頂ければと思います。

サイオステクノロジー株式会社 山田

Be the first to comment

コメント投稿

Your email address will not be published.


*