Mailman + Postfix + Nginx on Ubuntu SoftLayer
Goal
個人用のメーリングリストを構築する
Install
はじめに
個人で安く抑えたい場合には digital Ocean (https://www.digitalocean.com/pricing/) が快適で結構オススメです。$5/moで1core,521MB,20GB(SSD Disk),1T Transferなのでメーリングリスト等の簡易な用途であれば十分にこなしてくれそうです。今回はこれ意外にもOwnCloudなどを入れたかったのでSoftLayer (http://www.softlayer.com) のCloud Compute Instanceで利用してみました。一番安いノードで$25/moで 1core,1GB,25Gですね、すこし高いです。
ドメイン名
メーリングリストを始めるためにあたり今回は独自ドメインが欲しかったので色々あるので安いところから購入するのが良いかと思います。注意が必要なのはドメインを取得すると利用者の住所などの情報がwhoisで公開されるのですがこれをレジストラの業者が代行して表示してくれるサービスがあります。この対象となるドメインが業者により異なるので気をつけましょう。
DNSへの登録
SoftLayerのDNSサービスがありますのでこちらを利用していきます。ドメイン業者側のコントロールパネルなどの設定でNSを以下の2つに変更します。
- ns1.softlayer.com
- ns2.softlayer.com
すこし待てばSoftlayer側のDNS登録画面で登録した情報が利用されます。 次に、Softlayer側で構築するサーバを登録します。ネットワーク設定の画面でドメイン名(mailabcd.net)と対象となるサーバのIPアドレス(119.81.xxx.xx1)を入れると自動で幾つかの値がセットされます。不要な項目を消して消して置けば良いと思います。TTLは短くしておけば最初に伝搬されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
こんな感じにしておきます。感覚的に結構はやく名前の情報は反映される印象。 これで準備は出来たので導入をしていきたいと思います。
Install
一度にmailman入れるとすこし変だったので一つづつ入れていきます。
Postfix
1
|
|
導入時にConfigureで幾つか聞かれるので回答してします。
また設定は /etc/postfix/main.cf
になります。
- General type : Internet Site
- Site Name : mailabcd.net
- 設定ファイルは以下の様になります。ただし alias_maps で指定している /var/lib/mailman/data/aliases はmailman導入後に出来るため現時点ではエラーになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
fcgiwrap
cgiを動かす必要がありますが今回はnginx経由で使うために fcgiwrap を利用します。
1
|
|
サービスとして動作します
1 2 3 |
|
Mailman
本命のmailmanを導入します。日本語がオカシイという情報がネットで見られましたが特に問題はなさそうに見えます。
1 2 |
|
なぜか日本語が導入されませんので導入したら再構成します。その際に[ja]を選択します。
導入後の手順で check_perms
をしている事がありますが今回は利用しません。特に問題なく使えるようです。
管理用パスワードの変更
1 2 3 4 |
|
設定は /etc/mailman/mm_cfg.py
で行います。
変更を行ったところだけピックアップして書いておきます。
1 2 3 4 5 6 |
|
実際にはMTAの箇所をコメントアウトしただけかな。
1 2 3 4 |
|
これを実行するとaliasesも変更される
1 2 3 |
|
Postfixとmailmanを起動します。
1 2 |
|
エラーなどがある場合には、 /var/log/
配下を確認します。
Nginx
最後にフロントエンドになるnginxを導入します
1
|
|
設定ファイルを修正します。/etc/nginx/fastcgi_params
に以下の行をコメントアウト
1
|
|
一応WebサイトになってしまうのでRootのファイルを/var/www/mailabc.org/web
におけるようにディレクトリを作っておきます。
次に/etc/nginx/site-available/mailabcd.net.vhost
にファイルを作る。また有効にするために /etc/nginx/sites-enabled/mailabcd.net
にシンボリックリンクを作っておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
|
以下でい起動します
1
|
|
使ってみる
サイトへは http://mailabcd.net/cgi-bin/mailman/admin でアクセス可能です。 その後は画面をみて利用する事ができるかと思います。
ハマった点
- Gmailはメーリングリストへ投稿され記事(正確にはMessage-idが同じ記事)をリジェクト刷るようですね。したがってGmailから送信するとメーリングリストに投稿された後の記事が届かない感じになって動いてない〜って成りました。 強制的にSource変更して書き換えている人もいました my poc kt: Gmail でメーリングリストのメールが弾かれる件を自己環境だけでもとりあえず対処してみた
- MX レコードが自動で mail.mailabcd.net に記載されていたけどホスト名を study.mailabcd.net にしていたのでスパム扱いされてメールがgoogleからRejectされて悩んだ。
- メーリングリストのドメインを @study.mailabcd.net から @mailabcd.net に後でで変えたら動作が?な箇所もあり結局再導入した(SoftLayerの場合にはOSReloadすれば5分もいらずに初期化される)
まとめ
久しぶりにメーリングリストとか入れるとハマりました。Facebookとか色々共有するツールはあるのですがメールはほぼどの端末でも環境でも使えるのが良いですね。