2013-03-11 91 views
1

我想爲什麼我的用戶收到的電子郵件的複製副本從我的web應用程序發送到弄清楚的重複副本。以下是發送電子郵件的代碼:PHP和jQuery的發送電子郵件

function _send_user_email($to, $subject, $message) { 
    $this->load->library('email'); 
    $config['charset'] = 'utf-8'; 
    $config['wordwrap'] = TRUE; 
    $config['mailtype'] = 'html';  
    $config['protocol'] = 'sendmail'; 
    $this->email->initialize($config); 
    $this->email->from('[email protected]', 'Customer Service'); 
    $this->email->reply_to('[email protected]', 'Customer Service'); 
    $this->email->to($to); 
    $this->email->bcc('[email protected]'); 
    $this->email->subject($subject); 
    $this->email->message($message); 
    $this->email->send(); 
    if (! $this->email->send()) 
    { 
     echo $this->email->print_debugger(); 
     exit; 
    } 
} 

此代碼是否有任何問題可能導致郵件被髮送兩次?

回答

6

顯然,由於

$this->email->send(); 
    if (! $this->email->send()) 

您發送電子郵件的兩倍。刪除第一個電話,只留下一個在if聲明

+1

即使它裏面'if'它會發送電子郵件,然後檢查,如果它是成功與否!所以,你需要刪除第一次發送。 – Naryl 2013-03-11 16:05:39

+0

感謝這些意見。似乎相當一致的是,錯誤是第一個電話。但我不明白這裏發生了什麼。這裏發生了什麼?我看到的第一線實際發送的電子郵件,但我想我沒有真正理解的語法:如果(!$這個 - >的電子郵件 - >發送()) – DanielAttard 2013-03-11 16:09:05

+1

第一行是發送電子郵件和返回(我猜) 'boolean'是否發送電子郵件。由於您沒有將其保存到任何變量,因此該值將被忽略。然後,第二行再次發送郵件,但這個時候,你正在檢查在'if'聲明的返回值,看看是否電子郵件實際發送 – 2013-03-11 16:11:28