どうもMovableTypeのメール通知機能がおかしい。
色々調べてみると、結構有名な問題点らしい。
僕の場合、TypeKeyで書き込むと通知されるため、問題を正しく認識してなかったわけですが、
よくよく調べてみると、正に同じ症状の方を発見。
...ということは、TypeKey経由の書き込みと、それ以外の書き込みの分岐処理に問題あり?
と見当をつけてソースをチェック。
で、mt/lib/MT/App/Comments.pm内L349〜373に同様の記述を発見(長いけどそのまま貼ります)。
if ($comment->visible) {
# Rebuild the entry synchronously so that if the user gets
# redirected to the indiv. page it will be up-to-date.
$app->rebuild_entry( Entry => $entry )
or return $app->error($app->translate(
"Rebuild failed: [_1]", $app->errstr));
# Index rebuilds and notifications are done in the background.
MT::Util::start_background_task(sub {
$app->rebuild_indexes( Blog => $blog )
or return $app->error($app->translate(
"Rebuild failed: [_1]", $app->errstr));
my $send_notfn_email = 0;
if (!$commenter) {
$send_notfn_email = !$comment->visible();
} else {
$send_notfn_email = !$commenter_has_comment
&& !$comment->visible();
}
if ($blog->email_new_comments || $send_notfn_email)
{
$app->_send_comment_notification($comment, $comment_link,
$entry, $blog);
}
});
}
この箇所の順番を若干入れ替えて、
if ($comment->visible) {
# Rebuild the entry synchronously so that if the user gets
# redirected to the indiv. page it will be up-to-date.
$app->rebuild_entry( Entry => $entry )
or return $app->error($app->translate(
"Rebuild failed: [_1]", $app->errstr));
# Index rebuilds and notifications are done in the background.
MT::Util::start_background_task(sub {
$app->rebuild_indexes( Blog => $blog )
or return $app->error($app->translate(
"Rebuild failed: [_1]", $app->errstr));
});
}
my $send_notfn_email = 0;
if (!$commenter) {
$send_notfn_email = !$comment->visible();
} else {
$send_notfn_email = !$commenter_has_comment
&& !$comment->visible();
}
if ($blog->email_new_comments || $send_notfn_email)
{
$app->_send_comment_notification($comment, $comment_link,
$entry, $blog);
}
とすると、問題なく動く様になりました。^^
要するに、書き込みをそのまま再構築に回して良い時(TypeKey経由の書き込みとか)のみ再構築→通知の命令に入るという原文から、
通知の命令を独立させた感じっす。
乱暴な直し方かもしれないけど、結局これしかないのではないかと。思いました。



コメント (6)
私の場合は「コメント書込みを承認するまで保留」変更したら通知がこなくなりました。naokiさんの記事に気がつかずに自分でコメントの処理を調べてみると同じところを発見。ちょっと怖かったのでelseでメール送信の処理をするようにしました。
その後、naokiさんの記事を見て安心しました。
投稿者: chanken | 2005年04月02日 22:13
chankenさん、はじめまして。
この問題、他の方はどうしてるのかなぁ。。。と、とても気になってます。。。
こうするしかないような気がするんですけどねぇ。
また、お返事を書こうとしたらTypeKeyで書き込めないという不具合を見つけ、
色々試した(テンプレート再構成も含め・・・^^;)結果、
サーバの時計が狂っていたため、
TypeKey発行のtimestampが期限切れとして扱われていたという、
とってもマヌケな結論に至りました。
こういうのを無駄骨というのでしょう。。。ま、勉強になったから良しとしつつ。
今後とも是非こちらへのぞきに来て下さい。
投稿者: naoki
|
2005年04月03日 03:06
naokiさん、はじめまして。
naokiさんの記事を拝見して、私もきちんと保留コメントのメール通知を受け取ることができるようになりました。
有用な情報をありがとうございました。
投稿者: かっぱ
|
2005年05月09日 22:53
かっぱさん。
comment & trackbackありがとうございます。
参考にしていただければ、幸いです。
こーゆー情報の共有に、blogってほんと便利ですね。^^
投稿者: naoki
|
2005年05月09日 23:26
はじめまして。
コメント機能の不具合の解決方法をどうもありがとうございました。
なぜメール通知ができないのか、困り果てていたところでした。
こちらのおかげで解決できました。
投稿者: rose
|
2005年06月06日 03:23
roseさん。はじめまして。
この問題、悩んでる方が多いようですね・・・
参考にしていただければ幸いです!
投稿者: naoki
|
2005年06月08日 01:16