[[../]]
**ファイルの添付・削除時にメールでお知らせ -- [[まるぱ]] [#v40701b2]

~[[official:質問箱/370]]より、ファイルが添付・削除されたときにメールでお知らせしてくれる機能をattach.inc.phpに追加してみました。

ページの更新時にメールを送信してくれる機能はありますが、ファイルの添付時にはお知らせしてくれないようです。~
ファイルの添付・削除時は、たいていの場合「アップ(削除)しました」という書き込みを伴うと思うので、この場合は問題ないのですが、万が一無断でファイルを削除されたり大量のファイルをアップされたときのために、メールで通知する機能があれば便利だと思いました。

以下のパッチでは、ファイルが添付されたときは毎回、ファイルの削除時はATTACH_DELETE_ADMIN_ONLYがFALSEのときだけ(管理者以外にも削除を許可しているときだけ)メールで通知するようにしてあります。

article.inc.phpを参考にさせてもらいましたm(__)m

***変更箇所 (1.4.2に対するパッチです) [#n43db7a6]
-attach.inc.php
 @@ -29,6 +29,18 @@
  // アップロード/削除時にパスワードを要求する(ADMIN_ONLYが優先)
  define('ATTACH_PASSWORD_REQUIRE',FALSE); // FALSE or TRUE
   
 +// 添付・削除時のメール自動配信 1:する 0:しない
 +define('MAIL_AUTO_SEND',1);
 +// メール送信時の送信者メールアドレス
 +define('MAIL_FROM','');
 +// メール送信時の題名
 +define('MAIL_SUBJECT_PREFIX','[someone\'sPukiWiki]');
 +// メール自動配信先
 +global $_mailto;
 +$_mailto = array (
 +       ''
 +);
 +
  // ファイルのアクセス権
  define('ATTACH_FILE_MODE',0644);
  //define('ATTACH_FILE_MODE',0604); // for XREA.COM
 @@ -148,7 +160,7 @@
  {
  // $pass=NULL : パスワードが指定されていない
  // $pass=TRUE : アップロード許可
 -       global $adminpass,$_attach_messages;
 +       global $adminpass,$_attach_messages,$_mailto;
   
         if ($file['tmp_name'] == '' or !is_uploaded_file($file['tmp_name']))
         {
 @@ -188,7 +200,23 @@
         $obj->status['pass'] = ($pass !== TRUE and $pass !== NULL) ? $pass : '';
         $obj->putstatus();
   
 -       return array('result'=>TRUE,'msg'=>$_attach_messages['msg_uploaded']);
 +    // メール自動送信
 +    if (MAIL_AUTO_SEND) {
 +        $mailaddress = implode(',' ,$_mailto);
 +        $mailsubject = MAIL_SUBJECT_PREFIX;
 +        $mailsubject .= " New file's been attached";
 +        $mailsubject = mb_encode_mimeheader($mailsubject);
 +
 +        $mailbody .= "File '" . $file['name'] . "' ";
 +        $mailbody .= "has been attached to '" . $page . "'.\n";
 +        $mailbody = mb_convert_encoding( $mailbody, "JIS" );
 +
 +        $mailaddheader = "From: ".MAIL_FROM;
 +
 +        mail($mailaddress, $mailsubject, $mailbody, $mailaddheader);
 +    }
 +
 +    return array('result'=>TRUE,'msg'=>$_attach_messages['msg_uploaded']);
  }
  //詳細フォームを表示
  function attach_info($err='')
 @@ -549,7 +577,7 @@
         }
         function delete($pass)
         {
 -               global $adminpass,$_attach_messages;
 +               global $adminpass,$_attach_messages,$_mailto;
   
                 if ($this->status['freeze'])
                 {
 @@ -596,7 +624,23 @@
                         touch(get_filename($this->page));
                 }
   
 -               return array('msg'=>$_attach_messages['msg_deleted']);
 +        // メール自動送信
 +        if (MAIL_AUTO_SEND && !ATTACH_DELETE_ADMIN_ONLY) {
 +            $mailaddress = implode(',' ,$_mailto);
 +            $mailsubject = MAIL_SUBJECT_PREFIX;
 +            $mailsubject .= " A file's been deleted";
 +            $mailsubject = mb_encode_mimeheader($mailsubject);
 +
 +            $mailbody .= "File '" . $this->file . "' ";
 +            $mailbody .= "has been deleted from '" . $this->page . "'.\n";
 +            $mailbody = mb_convert_encoding( $mailbody, "JIS" );
 +
 +            $mailaddheader = "From: ".MAIL_FROM;
 +
 +            mail($mailaddress, $mailsubject, $mailbody, $mailaddheader);
 +        }
 +
 +        return array('msg'=>$_attach_messages['msg_deleted']);
         }
         function freeze($freeze,$pass)
         {
----
-[[BugTrack/686]] --  &new{2005-06-26 (日) 18:55:51};
- 1.4.6_alphaから、ページの更新だけでなくファイルの添付でもメール通知が行われるようになりました。[[official:Q&A/プラグイン/attachプラグイン]] --  &new{2007-03-17 (土) 16:56:29};
- ????????篆?紊??????????  http://www.stlouisbusinesslist.com/business/5021837.htm?info=viagra viagra   >:-[[   -- [[viagra]] &new{2010-03-08 (月) 13:08:40};

#comment
//#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.042 sec.

OSDN