2011-05-16 7 views
5

Tengo un script de shell de CakePHP que envía un correo electrónico. Esta secuencia de comandos está contenida en un complemento de CakePHP (foo).Usar una plantilla de correo electrónico de un complemento de CakePHP

Configuración de la plantilla de correo electrónico como

$this->Email->template = "foo/email_template_name"; 

no funciona, el correo electrónico envía con éxito, sin embargo, el correo electrónico se limita a decir

Not Found: /path_to_app/app/views/elements/email/html/foo/email_template_name.ctp 

me han verificado que la plantilla se denomina correctamente y existe.

menores Notas:

$this->Email->sendAs = "both"; 

Si la plantilla se mueve a /path_to_app/app/views/elements/email/html/foo/email_template_name.ctp que funciona correctamente. Sin embargo, esperaba enviar esto tanto como sea posible como un correo electrónico independiente que incluye las plantillas en el plugin.

Respuesta

1

Por favor, publique todo su código para $ this-> Email.

Comprobar:

$this->Email->sendAs = 'html'; 

has necesitado

$this->Email->template = "email_template_name"; 

y mover la plantilla a

/path_to_app/app/views/elements/email/html/email_template_name.ctp 
+0

Gracias por la respuesta de Mike, sí, todos tienen sido verificado –

1

compruebe la ruta de nuevo!

He enfrentado el mismo problema y me di cuenta que me había puesto mi plantilla en: /path_to_app/app/plugins/my_plugin_name/views/elements/email/my_template.ctp

Pero el camino correcto es: /path_to_app/app/plugins/my_plugin_name/views/elements/email/html/my_template.ctp

Desde que estoy usando el valor de 'html' como "Sendas" en mi controlador

$this->Email->sendAs = 'html';

+0

¿Qué versión de cakephp estás usando? – snowflake

+0

Supongo que estaba en 1.3.8. ¿Con qué problema estás tratando? Estoy trabajando ahora en 2.0, pero no comencé a enviar correos electrónicos todavía :) – colares

+0

esto funcionó con la ruta como lo sugieren los colares en cakephp 1.3.11 – fullybaked

1

Simplemente esta función no está implementada en CakePHP 1.3. Usted lo conseguirá en la nueva versión de CakePHP 2.0.0 http://bakery.cakephp.org/articles/lorenzo/2011/10/16/cakephp_2_0_released

ya que el error se ha corregido: http://cakephp.lighthouseapp.com/projects/42648/tickets/1743-cakeemail-in-plugins-doesnt-work-well-with-views

Usted puede pedir el tiempo o proporcionar un backport en 1.3. No sé la estrategia y asignaciones de backfix de cakephp.

4

Necesita decirle a CakeEmail el nombre del complemento. (Pastel 2.0.x)

En su modelo

$email = new CakeEmail(); 
$email->template('Foo.email_template_name'); 

o controlador

$this->email->template('Foo.email_template_name'); 

Es necesario crear las vistas para el correo electrónico:

Plugin/Foo/View/Emails/html/email_template_name.ctp 
Plugin/Foo/View/Emails/text/email_template_name.ctp 
+0

Esto funcionó para mí. Cake me decía que mi archivo faltaba cuando no estaba. La solución fue ponerle un prefijo al nombre de mi plantilla con el nombre del complemento. –

Cuestiones relacionadas