2011-02-07 342 views
1

我嘗試使用cakephp電子郵件組件發送郵件。但郵件沒有發送,也沒有顯示任何錯誤信息。我是否需要設置其他參數?這裏是我的代碼片段:如何使用cakephp電子郵件組件發送電子郵件?

  $this->Email->from='<[email protected]>'; 
    $this->Email->to='<[email protected]>'; 
    $this->Email->sendAs='both'; 
    $this->Email->delivery = 'debug'; 
    $this->Email->send(); 
+0

我遇到了一些問題,CakePHP的電子郵件組件 - 我發現,使用SMTP時,我只能發送郵件。你可能想試試看它是否有效(http://book.cakephp.org/view/1290/Sending-A-Message-Using-SMTP)。另外,您是否設置了電子郵件模板? (http://book.cakephp.org/view/1286/Sending-a-basic-message#Setting-up-the-Layouts-1287) – Tomba 2011-02-07 18:08:03

回答

0

嘗試改變

$this->Email->from='<[email protected]>'; 
$this->Email->to='<[email protected]>'; 

$this->Email->from='[email protected]'; 
$this->Email->to='[email protected]'; 

剛纔我已經解決了我的問題吧。當傳遞設置爲mail時,Cake不會發送消息,但是使用Google SMTP它可以正常工作。谷歌SMTP需要的地址是Name <[email protected]>。當我刪除Name,<>時,它開始按照設置爲mail的傳送方法適當地發送電子郵件。

順便說一句,它很有可能不會在本地主機上運行(因爲你可能是垃圾郵件發送者或其他),所以嘗試將你的應用上傳到服務器,然後發送郵件。

編輯:也改變傳遞方式爲郵件。但是,如果你想看到郵件的調試,你需要做的echo $this->Session->flash('email');在您的視圖時,調試交付方式設置

0

去替代這一點:

$this->Email->from='<[email protected]>'; 
$this->Email->to='<[email protected]>'; 

有了這個:

$this->Email->from='XYZ <[email protected]>'; 
$this->Email->to='ABC <[email protected]>'; 

我有一個類似的問題,似乎如果你沒有指定名稱(XYZ,ABC)電子郵件將不會被髮送,並且不會顯示錯誤。我使用Gmail的SMTP服務器,但希望這有助於。

而且這裏的一對電子郵件的食譜文章:http://book.cakephp.org/view/269/Sending-a-basic-message