2014-02-24 27 views
0

我是Cakephp的新手(我最近在這裏問了一些關於Cakephp的問題),我正在通過在官方網站上試用這個例子來學習。以下是鏈接。Cakephp電子郵件官方示例不起作用?

http://book.cakephp.org/2.0/en/core-utility-libraries/email.html

我加入到我下面的官方示例代碼之前創建自己的帖子控制器。

public function emailTesting(){ 
    $Email = new CakeEmail(); 
    $Email->config('default'); 
    $Email->from(array('[email protected]' => 'My Site')); 
    $Email->to('[email protected]'); 
    $Email->subject('Testing Subject'); 
    $Email->send('Testing email content'); 
} 

根據上述結構部,

不要求創建應用程序/配置/ email.php,CakeEmail能夠不使用它,並使用相應的方法,以單獨或負載設置所有配置一組配置。

所以,我認爲即使我沒有創建app/Config/email.php,上面的代碼也應該可以工作。然後,當我嘗試打開網頁

http://localhost/cakephpTesting/emailTesting/ 

它給出了一個空白頁,沒有錯誤消息(調試已經是2,這應該會顯示所有類型的錯誤信息,如果有任何錯誤),但我沒」不收取任何電子郵件。我也嘗試過不同的電子郵件服務提供商,如雅虎和我的學校電子郵件他們都失敗了,所以我認爲這應該是我的代碼的問題?

那麼,有誰知道我錯過了什麼?

+0

PHP錯誤日誌或tmp/logs中的任何eror消息?你創建了'config/email.php'嗎?如何定義'default'配置? – cornelb

+0

我沒有創建config/email.php,因爲官方指南說這不是必需的?默認是Cakephp的默認設置,我不知道設置是什麼。 – cytsunny

回答

3

正如在問題中提到,但並不需要創建一個應用程序/配置/ email.php,IF 使用相應的方法來單獨設置所有配置負載CONFIGS的陣列

您正在使用Email :: config()方法加載$default config數組,該數組應該在某處定義。作爲一種好的做法,它可以在app/Config/email.php中定義,或者在控制器的操作中定義它(不推薦後者)。 CakeEmail需要知道傳輸類型,主機,端口等

閱讀section,你在你的問題告訴你如何要麼使用的CakeEmail構造函數或使用$config陣列所提到的行之後。