2011-08-13 5 views
11

に私のコードを複数の電子メールを送信しているときにクリアされていない最後の電子メールの電子メールの添付ファイルが添付されたループ内で複数の電子メールを送信し、CodeIgniterの:ループ

問題は、次のメールに、最後(前回のすべての)電子メールの添付ファイル執着されます。

ex。

添付ファイル:a1.pdf

それは

メール1として添付された電子メールを送信し、各1つの(a1.pdf、a2.pdf、a3.pdf) の添付ファイル、 と、データベース内の3通の電子メールを仮定

メール2:

添付ファイル:a1.pdf、a2.pdf

メール3:

添付ファイル: a1.pdf、a2.pdf、a3.pdf

私はcodeigniterフレームワークを使用しています。

私のコードは、(このコードは、ループ内で呼び出された)

です。 。 。

$ this-> email-> subject($ item-> subject);

 $this->email->message($message); 
     $attachments=''; 
     if(strlen($item->attachment) > 5) 
     { 
      $attachments = explode(',', $item->attachment); 
      foreach($attachments as $attachment) 
      { 
       if(strlen($attachment)>5) 
       $this->email->attach(FCPATH . 'attachments/' . $attachment);      
      }     

     } 

     $this->email->send(); 

。 。 。

+4

解決策:$ this-> email-> clear(TRUE); – anils

答えて

12

ループ内で設定された変数を削除するには、$this->email->clear();を使用する必要があります。 Read the manual

16

CodeIgniterでリセットする必要があります。ループアドオンの終わりに

$this->email->clear(TRUE); 

これは、あなたが新しいメールを作成することができ、添付ファイルを含むすべての電子メール変数をリセットします。

+0

ありがとう、MaartenC89 – anils

+0

これは動作しますが、私の場合は、最後のループでファイルが添付されません。 – Kentot

関連する問題