2012-08-17 2 views
0

저는 암호 리마인더 이메일을 보내려는 웹 사이트를 만들려고합니다. Gmail 계정을 사용하여 테스트 해 보았습니다. 그러나Gmail을 사용하는 CakePHP 응용 프로그램에서 이메일 보내기

$this->Email->from = '[email protected]'; 
$this->Email->smtpOptions = array(
    'port'=>'465', 
    'timeout'=>'30', 
    'host' => 'ssl://smtp.gmail.com', 
    'username'=>'[email protected]', 
    'password'=>'notmyrealpassword'); 
$this->Email->delivery = 'smtp'; 
$this->Email->from = '[email protected]'; 
$this->Email->to = $this->request->data['User']['email']; 
$this->Email->subject = 'Your account reset request'; 
$this->Email->send('testing'); 
$this->Email->send(); 
debug($this->Email->smtpError); 

,이 코드 GES 나는이 오류에 geting있어 실행 :

Error: Call to a member function messageID() on a non-object  
File: C:\xampp\htdocs\site\lib\Cake\Controller\Component\EmailComponent.php 
Line: 312 

Notice: If you want to customize this error message, create app\View\Errors\fatal_error.ctp 

내가 잘못 여기서 뭐하는 거지를 케이크 요리 책에서, 나는이 코드를 가지고있다? 지금은 응용 프로그램이 제대로 전자 메일을 보낼 수 있는지 테스트하고 싶습니다. 그러나 Gmail은 프로덕션 환경의 사용자에게 이메일을 보내는 훌륭한 방법일까요?

감사합니다.

+0

로컬 sendmail을 사용하지 않는 이유는 무엇입니까? :) –

+0

구성 요소 대신 새 CakeEmail 클래스를 사용하는 것이 더 좋습니다. 이 오류는 send()를 호출하기 전에 코드를 설정했음을 보여 주지만 피사체를 설정하지 않아 발생합니다. 이것이 실제 치명적인 코드입니까? 또한 send()를 두 번 호출합니다. – Ceeram

답변

0

구성 요소 클래스를 컨트롤러에 포함시키지 않은 것 같습니다. 제어기 파일에 EmailComponent을 포함 시키십시오.

public $components = array('Email'); 
+0

당신을 위해 효과가 있는지 친절하게 물어보십시오. –

+0

이메일 구성 요소가 내 컴퓨터에 포함되어 있습니다. –

관련 문제