2009-10-12 5 views
1

CakePHP의 전자 메일 구성 요소를 통해 간단한 전자 메일을 보내려고합니다. 나는 요리 책 문서에서 다음 코드를 사용하고 있습니다 :CakePHP의 전자 메일 구성 요소 사용

$this->Email->from = 'Irgendjemand <[email protected]>'; 
$this->Email->to  = 'Irgendjemand Anderes <[email protected]>'; 
$this->Email->subject = 'Test'; 
$this->Email->send('Dies ist der Nachrichtenrumpf!'); 

보내기() -하지만 오류 또는 경고 발생 - 메소드는 값 거짓와 부울 값을 반환 않습니다.

누군가가 해결책이 있습니까?

+0

PHP의 바닐라 메일() 기능은 무엇입니까? 이것은 공유 호스팅 환경입니까? smtp 서버는 어디에 있습니까? 어떻게 구성됩니까? 더 많은 정보 필요 ... –

답변

3

배송 옵션을 변경해 보셨습니까? 세 가지 옵션이 있습니다 : mail, smtpdebug.

$this->Email->delivery = 'debug'; 
$this->Email->send('test message'); 
debug($this->Session->read('Message.email')); 
0

어떤 OS를 사용하고 있습니까? 윈도우 경우, this note가 관심을 가질만한 :

참고 : mail()의 윈도우 구현은 유닉스 구현과 여러면에서 다르다.
...
이와 같이 to 매개 변수는
"Something <[email protected]>"형식의 주소가 아니어야합니다. MTA와 통신하는 동안 mail 명령이이를 올바르게 구문 분석하지 못할 수 있습니다.

둘째, 스팸 방지로 인해 로컬 컴퓨터에서 보내는 메일을 수락하지 않는 경우가 있습니다. 나는 종종 동일한 mail() 함수가 로컬에서는 작동하지 않지만 신뢰할 수있는 서버에 업로드되면 제대로 작동한다는 것을 보아왔다. 이 경우 인증 된 메일 릴레이를 사용하려고 할 수 있습니다 (SMTP).

3

EMail을 사용하여 디버깅 할 수 있습니다. 배달을 디버그로 설정하면 전자 메일 메시지는 Session.message로 설정됩니다.

if (Configure::read('debug') > 1) { 
    $this->Email->delivery = 'debug'; 
} 
$ret = $this->Email->send(); 
if (Configure::read('debug') > 1) { 
    pr($this->Session->read('Message.email')); 
} 
관련 문제