cfFormMailerの添付が解除されない  【解決済み】

質問全般・改善要望
返信する
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

cfFormMailerの添付が解除されない  【解決済み】

投稿記事 by kazuike »

-----
ご利用のサーバ:NTTコミュニケーションズ Bizメール&ウェブ ビジネス
MODXのバージョン:1.0.12J-r1
PHPのバージョン:5.4.14
MySQLのバージョン:5.1.50
ブラウザ:Firefox、他諸々のブラウザ
-----

cfFormMailerで、一度ファイルを添付して送信すると、
ファイルを添付しない他のcfFormMailerを使ったフォームでも、
先に添付した同じファイルがメールに添付されるようになり、
これを解除することができません。
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

Re: cfFormMailerの添付が解除されない

投稿記事 by kazuike »

ソースを見た限りでは、
自動返信処理の中で添付ファイルを削除しているようなので、
自動返信を行わない(管理者宛メール送信のみの)場合でも削除するように、
以下のように、メソッド「sendMail()」の最後で削除するように変更してみました。

元のコード

コード: 全て選択

      $send_flag = $pm->Send();
      
      // 送信したファイルを削除
      if ($upload_flag) {
        foreach ($_SESSION['_cf_uploaded'] as $attach_file) {
          unlink($attach_file['path']);
        }
        unset($_SESSION['_cf_uploaded']);
      }

      if (!$send_flag) {
        $errormsg = 'メール送信に失敗しました::' . $pm->ErrorInfo;
        $this->setError($errormsg);
        $vars = var_export($pm,true);
        $vars = nl2br(htmlspecialchars($vars));
        $this->modx->logEvent(1, 3,$errormsg.$vars);
        return false;
      }
    }
    
    return true;
変更後のコード

コード: 全て選択

      $send_flag = $pm->Send();
      
      if (!$send_flag) {
        $errormsg = 'メール送信に失敗しました::' . $pm->ErrorInfo;
        $this->setError($errormsg);
        $vars = var_export($pm,true);
        $vars = nl2br(htmlspecialchars($vars));
        $this->modx->logEvent(1, 3,$errormsg.$vars);
        //return false;
      }
    } else {
    	$send_flag = true;
    }
    
      // 送信したファイルを削除
      if ($upload_flag) {
        foreach ($_SESSION['_cf_uploaded'] as $attach_file) {
          unlink($attach_file['path']);
        }
        unset($_SESSION['_cf_uploaded']);
      }
    return $send_flag;
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
返信する