2011-08-22 122 views
1

我使用cakephp電子郵件組件。在我的活服務器$ this-> Email-> send()返回成功。但郵件沒有收到。問題是什麼??我需要找到最新的錯誤? 我的控制器沒有任何模型,這可能會導致電子郵件的任何問題?CakePHP電子郵件無法正常工作 - 如何跟蹤錯誤

 $this->Email->from  = 'Mysitename <[email protected]'; 
     $this->Email->to  = '[email protected]'; 
     $this->Email->subject = "This is test"; 
     $this->Email->template = 'template_name'; 
     $this->Email->sendAs = 'html'; 

     ob_start(); 
     if($this->Email->send()) 
     { 
      $this->log(' Mail Success'); 
     } 
     else 
     { 
      $this->log('Something broke in mail');  
     } 
     ob_end_clean(); 
+2

爲什麼使用'ob_start()'和'ob_end_clean()'funcionts?你不需要他們來EmailComponent工作 –

+0

即使你只改變了兩行來隱藏電子郵件地址,請粘貼你的真實代碼。我非常懷疑你在這裏有這樣嚴重的語法錯誤的代碼會導致任何郵件被髮送。 – BoltClock

+0

這是我使用的代碼..它在我的開發服務器上正常工作。我的模板也沒有任何錯誤。即使如果我沒有傳遞任何電子郵件ID日誌顯示「郵件成功」。我將該電子郵件組件包含在該控制器中。 – AnNaMaLaI

回答

1

您可以設置發送到debug看到你的消息的輸出,以確保它的罰款:

$this->Email->delivery = 'smtp'; 

而且你還需要setFlash(「電子郵件」)看到在輸出的觀點:

echo $this->Session->flash('email'); 

至於從直播服務器發送電子郵件老話 - 有一個很好的機會服務器或IP被列入黑名單,你需要得到它你的仙面前經過各種檢查噸消息可被接收到的:

http://www.digitalsanctuary.com/tech-blog/debian/setting-up-spf-senderid-domain-keys-and-dkim.html