2012-02-12 16 views
16

En mi controlador estoy usando una función de correo electrónico con el siguiente código:CakeEmail - ¿Cómo lo uso?

public function email($mail = null){ 

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

    $email->from(array('[email protected]' => 'testing')); 
    $email->to('$mail'); 
    $email->subject('Approved'); 
    $email->send('Approved'); 

En la parte superior tengo

App::uses('AppController', 'Controller', 'CakeEmail', 'Network/Email'); 

Sin embargo, recibo el error Fatal error: Class 'CakeEmail' no encontrado en.

No estoy seguro de dónde me he equivocado. ¿Alguien puede ayudarme?

+0

Downvoted por falta de investigación. Todo estaba en el libro: http://book.cakephp.org/2.0/en/core-utility-libraries/email.html?highlight=cakeemail#CakeEmail – luchomolina

+0

@luchomolina y ahora nuevamente por sexta vez votada – bicycle

Respuesta

36

Usted necesita cambiar su App :: usos y separar los dos:

App::uses('AppController', 'Controller'); 
App::uses('CakeEmail', 'Network/Email'); 
+6

¿Puedes por favor explica por qué deberían estar separados? Funciona, pero no tiene sentido. Me gustaría saber por qué :) – Loolooii

+2

Debido a la nueva forma en que el pastel hace referencia a las clases. –

+0

¿Los desarrolladores pensaron que era tan obvio? no hay referencia en los documentos ... – Juan

1

Usted puede utilizar el componente de correo electrónico en el controlador

public $components = array('Email'); 

public function email(){ 
    $this->Email->to = '[email protected]'; 
    $this->Email->subject = 'Subject - '; 
    $this->Email->from = '[email protected]'; 
    $this->Email->send('message'); 
} 
+0

Esto no es aconsejable; el [componente de correo electrónico quedó obsoleto en CakePHP 2] (http://book.cakephp.org/2.0/en/core-libraries/components/email.html). –

Cuestiones relacionadas