質問箱/2268

カテゴリ
サマリ「タイムスタンプを変更しない」場合にメール送信止めたいです
バージョン1.4.3
投稿者しまやん?
状態完了
投稿日2004-07-25 (SUN) 19:10:17

質問

ページが改定されたときに送信されるメール機能、非常に重宝しているのですが、メールを流すまでもない更新の場合に、意図的にメール通知をしないであげたい、とも思っています。

そこで「file.php」の154行目あたりに手を加えて「タイムスタンプを変更しない」チェックがオンのときはメールを送らないようにしてみましたが、このオンオフに関わらず、必ずメールが送られてしまいます。

   if ($notify and $dir == DIFF_DIR)

   {

+       if (!$notimestamp)
+       {

           if ($notify_diff_only)
           {
               // 差分だけを送信する
               $str = preg_replace('/^[^-+].*\n/m','',$str);
           }
           if ($smtp_auth)
           {
               pop_before_smtp();
           }
            $subject = str_replace('$page',$page,$notify_subject);
           ini_set('SMTP',$smtp_server);
            mb_language(LANG);
            mb_send_mail($notify_to,$subject,$str,$notify_header);

+       }

   }

どなたかアドバイス頂けましたら幸いです。

回答

  • しまやん? 2004-07-25 (SUN) 19:13:45

    うわ、ごめんなさい、行がくずれちゃいました。 要は「if (!$notimestamp)」がうまいこと動いてないみたいなのですが・・。

  • しまやん? 2004-07-26 (MON) 17:26:25

    自己レスです。「if (!$notimestamp)」が効かない理由は判明しました。file.phpの42行目にある通り、DIFF_DIRモードでfile_writeが呼ばれるときは無条件に$notimestampがfalseとなる仕様の為でした。引き続き具体的な解決方法を考えてみようと思いますが、まずは現状の報告まで。

  • henoheno 2004-07-26 (MON) 21:12:13

    タイムスタンプを変えずに、暗黙のいたずらをされた場合もメールで通知が行かなくなってしまう気がしますので、その辺が今後の課題ですね :)

  • しまやん? 2004-07-27 (TUE) 00:06:25

    ふむふむ、なるほど。 メールを自分の携帯に送っている都合上、ページを新設したりする推敲作業中にもメールがバンバン飛ぶのはなんとかならないかなあ、というのが最初の動機でした。そうなると管理者パスワードを入れたときだけメールを止められる、とするほうがいいかもですね。もう少し検討してみます。^^   

  • しまやん? 2004-07-27 (TUE) 22:05:13

    検討した結果の”逃げ手”として、file.php 119行目付近に「if (preg_match ("/特定のキーワード/i", $str)」を追加して、TRUEならば何かフラグ($stopswなど)を立てた後にpreg_replaceでそのキーワードを空文字に置換しておき、後は 156行目付近で「if ($notify and $dir == DIFF_DIR and !$stopsw)」とやってみたら、特定のキーワードを含む時だけメールを抑制できました。きっとイレギュラーな方法なのでしょうが、とりあえず個人用ですのでこれで運用してみようと思います。PHP触るのは初めてでしたが、なかなか興味深く、もっと勉強してみたい気がしてきました。ありがとうございました。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-09-10 (火) 23:38:32
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.460 sec.

OSDN