2011-05-16 4 views
5

전자 메일을 보내는 CakePHP 셸 스크립트가 있습니다. 이 스크립트는 CakePHP 플러그인 (foo)에 들어 있습니다.CakePHP 플러그인의 전자 메일 템플릿 사용

작동하지 않습니다

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

로 이메일 템플릿을 설정, 이메일이 성공적으로 전송하지만 이메일은

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

내가 템플릿이 제대로 이름과 존재하는 것을 확인했다고 밝혔습니다.

마이너 참고 :

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

템플릿이 제대로 작동합니까 /path_to_app/app/views/elements/email/html/foo/email_template_name.ctp 로 이동합니다. 그러나 나는 플러그인 자체에 템플릿을 포함하는 전자 메일을 가능한 한 많이 전달하기를 바랬다.

답변

1

$ this-> Email에 대한 모든 코드를 게시하십시오.

확인 :

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

가지고 당신은 다시 경로를 확인

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

감사합니다 확인되었습니다. –

1

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

및 템플릿을 이동을 시도!

저도 같은 문제에 직면했고 나는 나의 템플릿을 배치 한 것을 깨달았다 : /path_to_app/app/plugins/my_plugin_name/views/elements/email/my_template.ctp

그러나 올바른 경로는 다음과 같습니다 /path_to_app/app/plugins/my_plugin_name/views/elements/email/html/my_template.ctp

내가 'HTML'값을 사용하고 있기 때문에 내 컨트롤러

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

+0

어떤 버전의 cakephp를 사용하고 있습니까? – snowflake

+0

나는 그것이 1.3.8에 있었다고 생각한다. 무슨 문제가있어? 나는 2.0에서 지금 일하고있다. 그러나 아직 전자 메일을 보내지 않았다. :) – colares

+0

이것은 cakephp에서 colares가 제안한 경로로 작업했다. 1.3.11 – fullybaked

1

의 "SendAs 권한은"간단하게이 기능은 CakePHP는 1.3에서 구현되지 않습니다. 당신은 버그가 수정 되었기 때문에 신선한 CakePHP의 2.0.0 릴리스 http://bakery.cakephp.org/articles/lorenzo/2011/10/16/cakephp_2_0_released

에서 그것을 얻을 것이다 : http://cakephp.lighthouseapp.com/projects/42648/tickets/1743-cakeemail-in-plugins-doesnt-work-well-with-views

당신은 결국 요청하거나 1.3에 백 포트를 제공 할 수 있습니다. 나는 cakephp backfixing 전략과 수당을 모른다.

4

당신은 CakeEmail에 플러그인 이름을 알려줘야합니다. (케이크 2.0.x)를 모델

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

또는 컨트롤러에서

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

당신은 이메일에 대한 전망을 만드는 데 필요한 모든 가지고 네, 응답 마이크에 대한

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

이것은 나를 위해 일했다. 케익이 내 파일이 누락되었다고 말하면서 해결책은 내 템플릿의 이름 앞에 플러그인 이름을 붙이는 것입니다. –

관련 문제