Mailmanでメーリングリスト

サーバー運用がかなり厳しいので寄付をしてくれる人がいたらこちら
メインPCもボロボロになってきたので、ついにほしいものリスト公開

この情報は古い可能性があります!

いろいろなメーリングリストがあるのですが、
見やすいWebアーカイブ+Webコンソールでの管理という面で
mailmanを利用します。

HP: http://mailman.sourceforge.net/
3.x系のHP: https://launchpad.net/mailman

2.1.13がでましたが、今後の主力は3.x系になるそうです。

インストール

useradd -d /usr/local/mailman mailman
chmod 02775 /usr/local/mailman
cd /usr/local/src
wget http://jaist.dl.sourceforge.net/sourceforge/mailman/mailman-2.1.13.tgz
tar zxvf mailman-2.1.13.tgz
cd mailman-2.1.13
wget http://ftp.momo-i.org/pub/mail/mailman-2.1.13-utf-8.patch.gz
gzip -d mailman-2.1.13-utf-8.patch.gz
patch -p1 < mailman-2.1.13-utf-8.patch

次に文字コード変換です。

cd /usr/local/src/mailman-2.1.13
cd messages/ja
nkf -w INSTALL > INSTALL.w
mv INSTALL.w INSTALL
nkf -w README.ja > README.ja.w
mv README.ja.w README.ja
nkf -w UPGRADING > UPGRADING.w
mv UPGRADING.w UPGRADING
cd LC_MESSAGES
nkf -w mailman.po > mailman.po.w
mv mailman.po.w mailman.po
cd ../
cd doc
nkf -w Defaults.py.in > Defaults.py.in.w
mv Defaults.py.in.w Defaults.py.in
nkf -w mailman-install.tex > mailman-install.tex.w
mv mailman-install.tex.w mailman-install.tex
nkf -w mailman-member.tex > mailman-member.tex.w
mv mailman-member.tex.w mailman-member.tex
cd ../../../
cd templates/ja/

ここはいっぱいあるのでシェルで。

vi ch.sh
#!/bin/bash
for i in `ls -1`; do
nkf -w $i > $i.w
mv $i.w $i
done

sh ch.sh
rm ch.sh

コンパイル

cd /usr/local/src/mailman-2.1.13
./configure \
--with-mail-gid=vchkpw \
--with-cgi-gid=apache \
--with-mailhost=list.momo-i.org \
--with-urlhost=list.momo-i.org
make
make install

cd /usr/local/mailman/bin
./check_perms -f
/usr/local/mailman/templates/pt_BR: ディレクトリのパーミッションは 02775 でなければいけません (修正中)
~~snip~~
/usr/local/mailman/messages/sl: ディレクトリのパーミッションは 02775 でなければいけません (修正中)
Warning: Private archive directory is other-executable (o+x).
This could allow other users on your system to read private archives.
If you're on a shared multiuser system, you should consult the
installation manual on how to fix this.
問題があります: 61
修正するには -f オプションをつけて mailman か root の権限で実行してください

もう一回実行するとWarningが出ますが、
以下のように正常になったことが分かります。

Warning: Private archive directory is other-executable (o+x).
This could allow other users on your system to read private archives.
If you're on a shared multiuser system, you should consult the
installation manual on how to fix this.
問題ありません

これは以下の手順で消せます。

cd /usr/local/mailman/archives/
chmod 02770 private
cd /usr/local/mailman/bin
./check_perm -f

次にQmailとの連携をします。
セキュリティのためにhttpsにも対応させておきます。

/usr/local/mailman/Mailman/mm_cfg.py

DEFAULT_SUBJECT_PREFIX = "[%(real_name)s:%%d] "
add_virtualhost('list.momo-i.org','list.momo-i.org')
add_virtualhost('URLのホスト名', 'メールサーバのホスト名')
ALLOW_SITE_ADMIN_COOKIES = 1
DEFAULT_URL_PATTERN = 'https://%s/mailman/'
PUBLIC_ARCHIVE_URL = 'https://%(hostname)s/pipermail/%(listname)s'
DEFAULT_SERVER_LANGUAGE = 'ja'
MTA_ALIASES_STYLE = 'qmail'

/usr/local/mailman/Mailman/Defaults.py

DEFAULT_URL_PATTERN = 'http://%s/mailman/'

DEFAULT_URL_PATTERN = 'https://%s/mailman/'

PUBLIC_ARCHIVE_URL = 'http://%(hostname)s/pipermail/%(listname)s'

PUBLIC_ARCHIVE_URL = 'https://%(hostname)s/pipermail/%(listname)s'

Apacheの設定

/usr/local/apache2/conf/httpd.conf

Alias /pipermail/ /usr/local/mailman/archives/public/
Alias /icons/ /usr/local/mailman/icons/
ScriptAlias /mailman/ /usr/local/mailman/cgi-bin/

AllowOverride All
Options ExecCGI FollowSymLinks Includes MultiViews SymLinksIfOwnerMatch
Order allow,deny
Allow from all

メーリングリストを作るためのパスワードを設定

cd /usr/local/mailman/bin
./mmsitepass
新しい サイト のパスワード: *****
パスワード確認: *****
パスワードを変更しました.

後は起動です。

ln -s /usr/local/mailman/bin/mailmanctl /etc/init.d/mailman
/etc/init.d/mailman start

デフォルトのメーリングリストを作成してみましょう。

cd /usr/local/mailman/bin
./newlist mailman
リスト管理者のメールアドレスを入力してください: webmaster@momo-i.org このメールアドレスは、スパムロボットから保護されています。アドレスを確認するにはJavaScriptを有効にしてください
mailman の初期パスワード: *****
メーリングリストの作成を完了するには, /etc/aliases (または同等の
ファイル) に, 以下の行を追加してください.
また, `newaliases' コマンドの実行が必要でしょう.

## mailman mailing list
mailman: "|/usr/local/mailman/mail/mailman post test3"
mailman-admin: "|/usr/local/mailman/mail/mailman admin test3"
mailman-bounces: "|/usr/local/mailman/mail/mailman bounces test3"
mailman-confirm: "|/usr/local/mailman/mail/mailman confirm test3"
mailman-join: "|/usr/local/mailman/mail/mailman join test3"
mailman-leave: "|/usr/local/mailman/mail/mailman leave test3"
mailman-owner: "|/usr/local/mailman/mail/mailman owner test3"
mailman-request: "|/usr/local/mailman/mail/mailman request test3"
mailman-subscribe: "|/usr/local/mailman/mail/mailman subscribe test3"
mailman-unsubscribe: "|/usr/local/mailman/mail/mailman unsubscribe test3"

Enter を押して mailman の管理者にメール通知する...

そしたらメールアドレスに次のようなメールが届きます。

Subject: 新しいメーリングリスト: mailman
`mailman' メーリングリストが作成されました.
以下は,このメーリングリストの基本的な情報です.


メーリングリストのパスワード:

******

メーリングリストの設定を行うにはこのパスワードが必要です.
また,発言の制限があるリストへの投稿を承認する場合など,管理上の申請を
処理する際にも必要になります.
~~後略~~

次にQmail用の設定をさらにします。

/home/vpopmail/domains/list.momo-i.org/mailman.sh

#!/bin/sh
if [ $# = 1 ]; then
i=$1
echo Making links to $i...
echo "|preline /usr/local/mailman/mail/mailman post $i" > .qmail-$i
echo "|preline /usr/local/mailman/mail/mailman admin $i" > .qmail-$i-admin
echo "|preline /usr/local/mailman/mail/mailman bounces $i" > .qmail-$i-bounces
echo "|preline /usr/local/mailman/mail/mailman confirm $i" > .qmail-$i-confirm
echo "|preline /usr/local/mailman/mail/mailman join $i" > .qmail-$i-join
echo "|preline /usr/local/mailman/mail/mailman leave $i" > .qmail-$i-leave
echo "|preline /usr/local/mailman/mail/mailman owner $i" > .qmail-$i-owner
echo "|preline /usr/local/mailman/mail/mailman request $i" > .qmail-$i-request
echo "|preline /usr/local/mailman/mail/mailman subscribe $i" > .qmail-$i-subscribe
echo "|preline /usr/local/mailman/mail/mailman unsubscribe $i" > .qmail-$i-unsubscribe
fi

chmod 755 mailman.sh
./mailman.sh mailman

後はhttps://list.momo-i.org/mailman/admin/mailman
あたりにアクセスをしてユーザを追加します。

mailman@list.momo-i.org このメールアドレスは、スパムロボットから保護されています。アドレスを確認するにはJavaScriptを有効にしてください にメールをして届くかを確認しましょう。

Cron設定

0 8 * * * /usr/bin/python -S /usr/local/mailman/cron/checkdbs
0 9 * * * /usr/bin/python -S /usr/local/mailman/cron/disabled
0 12 * * * /usr/bin/python -S /usr/local/mailman/cron/senddigests
0 5 1 * * /usr/bin/python -S /usr/local/mailman/cron/mailpasswds
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/bin/python -S /usr/local/mailman/cron/gate_news
27 3 * * * /usr/bin/python -S /usr/local/mailman/cron/nightly_gzip

独り言
qmail-dkというかSPFとメーリングリスト(mailman)の相性は悪いらしい

コメントを追加

Plain text

  • HTMLタグは利用できません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 行と段落は自動的に折り返されます。
CAPTCHA
また変更しました
Fill in the blank.