2011-12-01 104 views
5

在Cake 1.3中,EmailComponent做了它應該做的事情。 2.0中新的Cake Email類變成了一個沮喪......沒有發送電子郵件,沒有錯誤....模糊的文檔...CakePHP 2.0:CakeEmail挫折

我嘗試了所有可能的變體,嘗試使用我的SMTP,Mail ()和Gmail,沒有任何反應。在此我最近的一次嘗試:

控制器片斷:

//on top of page 
App::uses('CakeEmail', 'Network/Email'); 


//in method 
$email = new CakeEmail(); 
$email->template('contact_email') 
->emailFormat('text') 
->to('[email protected]') 
->from('[email protected]') 
->send(); 

Email.php配置文件:

類EmailConfig {

//It also does not work with a constructor 

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

有人可以請張貼工作代碼的電子郵件類。非常感謝

+0

「沒有任何反應」是沒有真正的錯誤描述。調試設置爲2? – burzum

+0

調試設置爲2.一旦我提交我的表單,我收到一條成功消息.....電子郵件永遠不會發送。 – ChrisDK

+2

-1。請在將來的問題上更專業一點;非建設性的批評,CAPS,並給我工作代碼不作出好的問題。 –

回答

9

我認爲你必須從配置/ email.php明確載入你的配置,它不會自動加載,不即使是默認配置:

$email = new CakeEmail(); 
$email->config('default'); 

//or in constructor:: 
$email = new CakeEmail('default'); 
+1

最後,感謝您的反饋,它的工作! Happy newyear – ChrisDK

+0

自從CakePHP 2.7自動加載'default'配置後,就不再有了。 –

1

這是我的電子郵件配置文件。我沒有做這裏的任何變化

class EmailConfig { 

    public $default = array(
     'transport' => 'Mail', 
     'from' => 'Admin <[email protected]>',  
     'charset' => 'utf-8', 
     'headerCharset' => 'utf-8', 
    ); 

} 

這是我發送郵件

$email = new CakeEmail(); 

$result = $email->template('welcome') 
       ->emailFormat('text') 
       ->to($NewUser['email']) 
       ->from('[email protected]') 
       ->send(); 
var_dump($result); 
+0

謝謝Web開發人員。我做了你所說的一切,我看到一個轉儲併爲我的郵件服務器添加了正確的參數(與舊的郵件組件一起工作),仍然沒有發送任何內容。你能用這個腳本發郵件嗎?我收到沒有錯誤消息。 – ChrisDK

+0

是的,我能發送它 – aWebDeveloper

+0

你發送本地主機 – aWebDeveloper

3

在我看來,你應該這樣做:

$email = new CakeEmail('gmail');