2014-03-26 59 views
1

我是CakePHP的新手,這是我第一次嘗試設置電子郵件表單。CakeEmail不發送,但沒有錯誤

保持簡單的例子:

<?php 
App::uses('AppController', 'Controller'); 
App::uses('CakeEmail', 'Network/Email'); 
class EmailController extends AppController { 

    public function send_email($from, $subject, $message) { 
     $Email = new CakeEmail(); 
     $Email->from($from) 
     ->to('[my personal email]') 
     ->subject($subject); 
     if($Email->send($message)) { 
      $result = 'Your email has been sent.'; 
     } else { 
      $result = 'Your email failed to send.'; 
     } 

     $this->set('result', $result); 
     $this->set('params', '('.$from.'|'.$subject.'|'.$message.')'); 
    } 
} 

send_email.ctp

<?php echo $result;?> 
<br> 
<?php echo $params;?> 

我收到 「您的電子郵件已發送」,到$ params看如我所料,我沒有看到任何錯誤...但我沒有收到電子郵件。任何想法爲什麼會發生?

+0

試試這個http://stackoverflow.com/a/10985689/1239506 –

+0

@MoyedAnsari,我不確定你的意思。我的App :: uses調用與此相同。 – smerny

+0

我的意思是你配置了電子郵件設置嗎? –

回答

3

在這之前,你需要定義email.php電子郵件配置Config文件夾下

下面我們就針對Gmail的例子配置

class EmailConfig { 
    public $gmail = array(
     'host' => 'ssl://smtp.gmail.com', 
     'port' => 465, 
     'username' => '[email protected]', 
     'password' => '*****', 
     'transport' => 'Smtp' 
    ); 
} 

那麼您可以在控制器使用此設置像

$Email= new CakeEmail('gmail'); 

短暫的,你必須根據需求配置SMTP。我希望這對你會很方便。謝謝

+0

我在文檔中看到了這個,但它似乎是從** a發送郵件**我想要做的是從用戶插入的電子郵件地址('$ from'參數)**發送電子郵件到**我的電子郵件地址 – smerny

+1

是的,但爲了您需要SMTP服務器gmail提供發送郵件的免費服務,這裏用戶名只是用於驗證的目的 –

+0

好的,當我回家的時候我會試一試 – smerny

相關問題