2006年1月7日 MT-Notifierが3.4.1にバージョンアップして、日本語化手順が変わりました。
3.4.1での手順はこちらのエントリーを参照してください。
「MT-Notifier」は、コメントへ返信したときに、コメントしてくれた人に対して自動で通知メールを送信するなど、Movable Typeに通知機能を追加するプラグインです。
Movable Type 3.2では、従来のMT-Notifier(バージョン2.x.x)は動作しなくなり、MT3.2専用のものが必要になりました(本エントリー投稿時点ではバージョン3.2.7)。
そこで、MT-Notifier 3.2.7のインストールと、通知メッセージを日本語化する手順をご紹介します。
1.MT-Notifier 3.2.7のインストール
MT-Notifier 3.2.7は、以下からダウンロードすることができます。ページの右上の方に、ダウンロードのリンクがあります。
ダウンロードしたファイルは、Zip形式になっています。
ファイルを解凍すると、「php」と「plugins」の2つのフォルダができます。
「plugins」フォルダの中身を、ディレクトリ構造を保ったまま、Movable Typeの「plugins」フォルダにアップロードします(Movable Typeの「plugins」ディレクトリの中に、「Notifier」ディレクトリができるようにアップロードする)。
アップロードが終わったら、MTのディレクトリ/plugins/Notifier/mt-notifier.cgiのパーミッションを書き換え、実行可能に設定します。
2.初期化
Movable Typeにログインした状態で、以下のURLにアクセスします。
http://Movable Typeのインストール先/plugins/Notifier/mt-notifier.cgi?__mode=loader
「Your system is installed and ready to use!」と表示されれば、初期化は完了です。
また、旧バージョン(2.x.x)から設定を受け継ぐ場合は、以下のURLにアクセスします。
http://Movable Typeのインストール先/plugins/Notifier/mt-notifier.cgi?__mode=import&from=n2x
3.送信元メールアドレスの設定
Movable Typeにログインし、「システム・メニュー」の「プラグイン」を開いて、プラグイン一覧を表示します。
その中に「MT-Notifier」が表示されますので、「設定を表示」のリンクをクリックします。
「Address to use when sending notifications and no other addresses are available:」という欄がありますので、通知メールの送信元メールアドレス(通常はご自分のメールアドレス)を入力し、「変更を保存」ボタンをクリックします。
4.コメント送信フォームの書き換え
次に、コメント送信フォームに「このコメントに返信があったらメールで通知する」というチェックボックスを追加します。
エントリーアーカイブテンプレートを開き、「<textarea・・・>~<t/extarea>」の部分を検索します。
そして、その直後に以下のタグを追加します。
<br /><label for="subscribe"><input type="checkbox" name="subscribe"> このコメントに返信があったらメールで通知する</label>
5.notifier.pmの書き換え
MTのディレクトリ/plugins/Notifier/lib/Notifier.pmを開き、以下の3箇所を書き換えて日本語化します。
ファイルの書き換えが終わったら、元のファイルに上書きでアップロードします。その際、文字コードに注意してください(Movable Typeの文字コードに合わせる)。
・435行目付近
書き換え前
if ($entry) {
$head{'Subject-Pending'} =
$app->translate("Please confirm your request to $record_text \'[_1]\'", $entry->title);
$head{'Subject-Running'} =
$app->translate("You have subscribed to $record_text \'[_1]\'", $entry->title);
書き換え後
if ($entry) {
$head{'Subject-Pending'} =
"「" . $entry->title . "」へのコメントの返事の通知確認";
$head{'Subject-Running'} =
"「" . $entry->title . "」へのコメントの返事の通知を受け付けました";
・570行目付近
書き換え前
if ($comment) {
$head{'Subject'} .=
$app->translate('New Comment from \'[_1]\' ', $comment->author).
$app->translate('on \'[_1]\' ', $entry->title);
書き換え後
if ($comment) {
$head{'Subject'} .=
"「" . $entry->title . "」に" .
$comment->author . 'からコメントがありました';
・625行目付近
書き換え前
my $mgr = MT::ConfigMgr->instance;
my $xfer = $mgr->MailTransfer;
if ($xfer eq 'sendmail') {
return MT::Mail->_send_mt_sendmail($hdrs, $body, $mgr);
書き換え後
my $mgr = MT::ConfigMgr->instance;
my $xfer = $mgr->MailTransfer;
my $enc = $mgr->PublishCharset || 'utf-8';
my $mail_enc = $mgr->MailEncoding || 'iso-8859-1';
require MT::I18N;
$body = MT::I18N::encode_text($body,$enc,$mail_enc);
$hdrs->{Subject} = MT::I18N::encode_text($hdrs->{Subject}, $enc, $mail_enc);
if ($hdrs->{'Subject-Running'}) {
$hdrs->{'Subject-Running'} = MT::I18N::encode_text($hdrs->{'Subject-Running'}, $enc, $mail_enc);
}
if ($hdrs->{'Subject-Pending'}) {
$hdrs->{'Subject-Pending'} = MT::I18N::encode_text($hdrs->{'Subject-Pending'}, $enc, $mail_enc);
}
$hdrs->{'Content-Type'} = qq(text/plain; charset="$mail_enc");
$hdrs->{'Content-Transfer-Encoding'} = (lc $mail_enc ne 'utf-?8') ? '7bit' : '8bit';
$hdrs->{'MIME-Version'} = "1.0";
if ($xfer eq 'sendmail') {
return MT::Mail->_send_mt_sendmail($hdrs, $body, $mgr);
6.通知メールの日本語化
Movable Typeのディレクトリ/plugins/Notifier/tmpl/emailディレクトリに、「comfirmation.tmpl」と「notification.tmpl」の2つのファイルがあります。
これらをそれぞれ以下のように変えて、アップロードしなおします(その際には文字コードに注意してください)。
・confirmation.tmpl
'<TMPL_VAR NAME=BLOG_NAME>' で、「コメントへの返信をメールで通知」のチェックがオンにされたので、確認のメッセージをお送りしています。 以下のエントリーで、「コメントへの返信をメールで通知」のチェックがオンにされました。 <TMPL_VAR NAME=RECORD_NAME> コメントへの返信をメールで受信したい場合は、以下のリンクをクリックしてください。 <TMPL_VAR NAME=NOTIFIER_LINK>?c=<TMPL_VAR NAME=RECORD_CIPHER> エントリーの内容を確認する場合は、以下のリンクをクリックしてください。 <TMPL_VAR NAME=RECORD_LINK> もし、「コメントへの返信をメールで通知」のチェックをオンにした覚えがない場合は、このメールは無視してください。
・notification.tmpl
<TMPL_IF NAME=NOTIFIER_ENTRY><TMPL_IF NAME=ENTRY_EXCERPT>エントリーの概要: </TMPL_IF></TMPL_IF><TMPL_IF NAME=NOTIFIER_COMMENT><TMPL_VAR NAME=COMMENT_TEXT></TMPL_IF> <TMPL_IF NAME=NOTIFIER_ENTRY><TMPL_IF NAME=ENTRY_EXCERPT><TMPL_VAR NAME=ENTRY_EXCERPT></TMPL_IF></TMPL_IF><TMPL_IF NAME=NOTIFIER_COMMENT><TMPL_IF NAME=COMMENT_NAME><MT_TRANS phrase="Author:"> <TMPL_VAR NAME=COMMENT_NAME><br /></TMPL_IF><TMPL_IF NAME=COMMENT_URL><MT_TRANS phrase="Website:"> <TMPL_VAR NAME=COMMENT_URL></TMPL_IF></TMPL_IF> エントリーの内容を見る: <TMPL_VAR NAME=ENTRY_LINK> このコメントへの返信の通知を停止する: <TMPL_VAR NAME=NOTIFIER_LINK>?c=<TMPL_VAR NAME=RECORD_CIPHER>&u=1 このサイトからの通知をすべて停止する: <TMPL_VAR NAME=NOTIFIER_LINK>?c=<TMPL_VAR NAME=RECORD_CIPHER>&o=1
7.動作の確認
ここまでの時点で、MT-Notifierが動作する状態になります。
自分でコメントを書き、メールアドレスの欄には自分のメールアドレスを入力して、「このコメントに返信があったらメールで通知する」のチェックをオンにして投稿します。
しばらくすると、MT-Notifierから確認のメールが届きます。
その中に、「コメントへの返信をメールで受信したい場合は、以下のリンクをクリックしてください。」という部分があり、URLが表示されていますので、そのURLのページを開きます。
次に、コメントに返信を書きます。その際、メールアドレスの欄には、最初のコメントは違うメールアドレスを入力します。
このコメントを投稿すると、自分あてに通知メールが送られます。
8.問題点
コメントを受信すると、コメント先のエントリーなど、いくつかのページが再構築されます。
ただ、MT-Notifierを入れると、テンプレートの内容によっては、再構築に失敗して500エラーが出ることがあります。
Movable Type 3.2では再構築時のメモリ消費量が増えているようですが、それが関係しているのではないかと思います。
コメントすると毎回500エラーになるようであれば、MT-Nofitierを当面はずしておくしかなさそうです。
ちなみに、当方ではPerl版ダイナミックパブリッシングを活用するなどし、コメントを受信してもテンプレートを一切再構築しないようにして、上記の問題を回避しています。









コメントはスレッド表示になっています。
また、スレッドの先頭のコメントに対する返信には、先頭に矢印を表示しています。
こんにちは。2.の初期化のところで「あなたには権限がありません。」といわれます。
プラグインの一覧には やはり クリックできない状態で 入っています。
実は うちのMTには 今 投稿をしているアカウントより以前に
最初にMTを作ったときのアカウントがあって、そのアカウントが
システム上のすべての権限を持ってるアカウントのようなのです。
覚えているパスワードでログインしようとしても間違ってるようでできません。
これは もう諦めるしかないでしょうか?
こんにちは。
プラグインの一覧でまだクリックできない件ですが、古い(MT3.1x用の)バージョンのMT-Notifierが残っているのではないでしょうか。残っていたら削除してください。
また、パスワードが分からなくなったときには、「mt-medic」というプラグインを使うと良いです。MT3.2でも動作しました。
mt-medicについては、以下のページを参照されると良いでしょう。
http://bitbizdesign.com/a/2005/09/mt.html
mt-medic で パスワードを設定しなおしたのですが、やっぱりログインできません。
最初によほどの設定ヘマをしてしまったのでしょうかね。
それで、いつも投稿していてログインもできるアカウントに
システム上のすべての権限を与えた(mt-medic のパーミッションで)のですが
その状態でも You are not authorized to run this process!
と はじかれてしまい、先に進めません。ホントに困ってしまいました・・・
旧Notifierのヴァージョンは 2.4.2でした。
その場合 http://Movable Typeのインストール先/plugins/Notifier/mt-notifier.cgi?__mode=import&from=n2x の
n2x のところは、なんてしたらいいのでしょう?
こんにちは。
MovableType 3.2-ja-2にインストールが出来、日本語化もでき、メールが届くのですが、その通知メールの「このコメントへの返信の通知を停止する」や「このサイトからの通知をすべて停止する」のURLがおかしいのです。
本来ならば、
http://www.sample.com/cgi-bin/mt/plugins/Notifier/mt-notifier.cgi?c=.....
となるべきところが、
http://www.sample.com/cgi-bin/mtplugins/Notifier/mt-notifier.cgi?c=.....
と、mtとpluginsの間の「/」が表示されません。
何か設定が必要なのでしょうか?
>さえらさん
こんにちは。
かなりややこしい状況になってしまったようで・・・。mt-medicでだめだとすると、回復方法は分からないです。
なお、「n2x」は「MT-Notifier 2.x.x全体」を意味しますので、「n2x」をそのまま入力します。
>pegaさん
mt-config.cgiの「CGIPath」の最後に「/」をつけると直ると思います。
MT-Medicのパーミッションのところで すべての項目にチェックを入れても
どうしても、今 投稿をしているアカウントは
「ブログの管理者」にはなれても、「システムの管理者」にはなれないようです。
MTを一番最初に導入したときに、Melody Nelsonで ログインするじゃないですか、
そのあと、自分のアカウントを すぐに作成したのですが、
その後 ログインしようと思っても 二度とログインできなかったんです。
そこで、MTを一度全部削除してあらたにインストールしなおして、
今 投稿するときに使っているアカウントをあらたに作ったつもりでした。
その過程で、どうにもならないヘマをしちゃったのかもしれません。
投稿に使ってるアカウントは 最初に作ったアカウントさんが作成したことになっていて
システム管理の権限を 今のアカウントに移行させることは できないようです。
今、コメント投稿時に 100%エラーになってる状態なので
ここは潔く、MT-Notifier を はずしてしまおうかと思います。
何度もご指導いただいたのに できなくてすみません。
mt-config.cgiの「CGIPath」の最後に「/」をつけたら、正しく表示されました。何だか基本前の質問をしてしまって、恥ずかしいです。
どうもありがとうございました。
>さえらさん
こんにちは。
MTを導入して、Melodyでログインしたら、アカウントを追加するのではなく、Melodyのアカウントの設定を書き換えて、自分のアカウントにするようにします。
もし、何らかの事情でMTを再度インストールする機会ができたら、そのときは上に書いたようにすると良いでしょう。
ダメ元のアイデアですが、Melody Nelsonのアカウントをもう一回作って、それでアクセスできないでしょうか?
ホント、スーパーユーザ権限って素敵ですね。
今度は 書かれてるとおりにしたらなんなくできました。
MT-Notifier 復活です。重ね重ねありがとうございました。
Mt-Notifier 3.4 は同じに出来ますでしょうか? 何だか機能が増えたのか、3.2.7とは違いますよねぇ?
>PhotoPierreさん
こんにちは。
MT-Notifier3.4はまだ導入していないので、後日調べてみたいと思います。
お願いします! いつのまにか3.4.1になっていました
mt-notifier 3.4.7を使用しようとしています。
MTのバージョンは3.32jaです。
実は、データーベースのアップグレードをします、という段階で
スクリプトの停止、あるいは時間がかかっています、
というエラーメッセージが出て、先に進めなくなります。
サーバーは、Xserverです。
何かアドバイスがありますでしょうか。
この下の欄のように
「このコメントに返信があったらメールで通知する」と
書ける日がくることを夢見ています。
>nobuさん
こんにちは。
ご質問の券ですが、サーバーに依存する問題ではないかと思います。
申し訳ありませんが、アドバイスできることはありません。