MovableType では、コメントが投稿されたときにメールで通知してくれる機能がある。
■ ■ ■
設定は次の2点。
- 「メインメニュー > プロフィールの編集」でメールアドレスを指定する
- 「メインメニュー > 編集メニュー > 設定」の「ウェブログの設定」の中で「コメントが登録されたら通知する」にチェックする
しかし、メールが届かない。mt.cfg を読んでみると、メール送信するのにMovableTypeは
- デフォルトでは sendmail を使う
- sendmail でない場合は Mail::Sendmail モジュールを使う
とある。VineLinux のメール配送エージェントは Postfix なので、後者にあたる。セットアップするには次の手続きが必要となる。(→追記あり)
- Perl モジュール Mail::Sendmail をインストールする
- mt.cfg の MailTransfer に smtp を指定して、SMTPServer に SMTP サーバ名を設定する
Perl モジュールをインストールする。ネットワークインストールが便利。はじめて CPAN を利用する場合は設定が必要 (nlog(n): Jcode.pm 0.83 参照)
# perl -MCPAN -e "install 'Mail::Sendmail'"
Going to read /root/.cpan/sources/authors/01mailrc.txt.gz
Going to read /root/.cpan/sources/modules/02packages.details.txt.gz
Database was generated on Sun, 15 Feb 2004 11:54:30 GMT
HTTP::Date not available
There's a new CPAN.pm version (v1.76) available!
[Current version is v1.59_54]
You might want to try
install Bundle::CPAN
reload cpan
without quitting the current session. It should be a seamless upgrade
while we are running...
(中略)
Current recipient(s): 'Sendmail Test <sendmail@alma.ch>'
ok 1
Server set to: mail.alma.ch
Sending...
content of $Mail::Sendmail::log:
Mail::Sendmail v. 0.79 - Sun Feb 15 11:58:15 2004
Date: Sun, 15 Feb 2004 11:58:15 +0900
Server: mail.alma.ch Port: 25
From: sendmail@alma.ch
Subject: Mail::Sendmail version 0.79 test
To: sendmail@alma.ch
Result: 250 Ok: queued as B4C127FD6
ok 2
(後略)
現在のバージョンは 0.79 であることが分かる。メール配信のテストも行っているようだ。CPAN.pm がバージョンアップされている。HTTP::Date もインストールした方がいいかも知れない。
これで完了かと思い、メールを出してみたが届かない。ログファイル /var/log/maillog を見てみると、エラーが出ていた。
Feb 16 02:55:21 tp600 postfix/smtp[20190]: warning: mailer loop: best MX host for nlogn.ath.cx is local
自分自身の中でループしてしまっている。tp600 はローカルのホスト名である。Mail::Sendmail が nlogn.ath.cx 宛にメールを送ると、それは自分自身に送られる。しかし、配送エージェント Postfix が、自分は nlogn.ath.cx だと思っていないので、さらに nlogn.ath.cx に転送しようとしてしまうためだ。Postfix に自分の名前が nlogn.ath.cx でもあるということを教えてあげなければならない。
Postfix のコンフィグレーションファイル /etc/postfix/main.cf を編集し、mydestination にホスト名を追加する。
mydestination = $myhostname, localhost.$mydomain, $mydomain,
mail.$mydomain, www.$mydomain, ftp.$mydomain,
tp600.$mydomain, nlogn.ath.cx
Postfix を再起動する。
# /etc/init.d/postfix restart
これで無事通知メールが届くようになった。
2004年4月16日追記:
salvageship さんからのトラックバックで、Postfix に sendmail 互換コマンドが用意されていることが分かった。これを使えば、上で行った Perl モジュール Mail::Sendmail のインストールは不要で、Postfix の設定だけを行えばよい。この場合、mt.cfg には
SendMailPath /usr/sbin/sendmail
と指定する。MailTransfer と SMTPServer はどちらもコメントアウトしておいてよい。
# MailTransfer smtp
# SMTPServer smtp.your-site.com
2005年4月20日追記:
postfix を使うのと Mail::Sendmail を使うのでは,メールの形式が微妙に違うようです (nlog(n): MT 2.661 のコメント通知メールが文字化けする)。
Posted by n at 2004-02-17 13:24 | Edit | Comments (2) | Trackback(5)
テスト投稿
Posted by: n at August 05, 2014 11:49テスト投稿
Posted by: n at February 23, 2015 15:34