2012-05-07 2 views
0

나는 케이크의 PHP 이메일 구성 요소와 함께 이메일을 보내도록 노력하고 couldnt는 전자 메일을 보낼 수 있습니다. 내부 오류가 발생했습니다. 오류 로그에 "SocketException"이 있습니다.케이크 PHP는 이메일 도우미 내부 오류

저는 cakephp 2.0을 사용하고 있습니다.

작동하려면 어떻게 구성해야합니까? 나는 smtp 서버를 사용하고 싶지 않습니다. 그래서 단순한 이메일을 보내고 싶습니다.

내 PC에서 WAMP를 사용하고 있습니다.

+0

을 확인? – Annabel

+1

lib를 대신 사용하여 구성 요소를 포함시키는 이유는 무엇입니까? 또한 - 창문을 사용하고 smtp를 사용하지 않는 것은 당신이 무엇을 해야할지 모르는 경우 설정하기가 매우 어렵습니다. 왜 쉬운 방법을 사용하지 않는가 (smtp는 단지 4 개의 설정 문자열 임). – mark

+0

내 대답은 여기를 봐 http://stackoverflow.com/questions/17669012/cakephp-2-cakeemail-could-not-send-email-error/19875079#19875079 – Fury

답변

1

예외를 디버깅하십시오.

나는 당신이 당신의 메일 서버에 대한 연결을 열 수 없습니다 내기. 메일 서버 설정이나 CakePHp와의 연결에 오류가있는 것 같습니다. 난 당신이 XAMPP를 사용하는 것이 좋습니다 창을위한 쉬운 메일 서버 설정을위한

, 그것은 페가수스, 나를 위해 단지 쉽고 빠르게 작동하는 사전 구성된 메일 서버와 함께 제공됩니다. 이것은 정말 생겼

1

메일 서버 설정 또는 그것에 연결 오류입니다. 그러나 EmailComponent에 대한 CakeEmail 클래스를 혼란스럽게합니다.

은 첫째로 당신은 당신이 새로운 CakeMail 클래스 (2.X에서 새로운)를 사용하는의 emailComponent으로 이메일을 보내려고 아닙니다. 따라서 이 :

var $components = array('Email'); 

이 :

$email = new CakeEmail(); 

는 다른 두 가지입니다. 첫 번째는 EmailComponent를로드하지만, 전혀 사용하지 않습니다. 2.x의 EmailComponent는 더 이상 사용되지 않습니다. 귀하의 예에서는 CakeEmail 클래스를 사용하고 있습니다.

첫째로 당신은 클래스가 실제로로드되는 것을 보장해야한다 : 나는 당신이 현재 기본 구성 옵션을 사용하는 가정

App/Config/email.php 

: 당신이 구성 파일이있는 경우

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

그런 다음 확인 . 즉, 기본 전송은 'Mail'- PHP 메일 기능입니다. 기본 메일 전송 에이전트에 연결할 수 없으며 시스템 소켓을 통해이 작업을 수행하려고하기 때문에 SocketException 인이 발생합니다 (Windows에서는 존재하지 않는 것으로 생각되지만 잘못 될 수 있습니다. 나는 기본 이메일 구성이 괜찮 사용하여, 어쨌든 프로세스 간 cominucation의 윈도우 API에서 그런 일)

있다는 것을 확실히 알고있다. CakeEmail 클래스의 CakePHP 북 섹션을 읽어보십시오.

2

줄의 주석 : php.iniextension=php_openssl.dll. 이렇게하면 소켓 문제가 해결됩니다.내가 말하고 싶은

한가지 더 있습니다 :

당신은 모두 두 가지 핵심 라이브러리를 & 구성 요소를 혼합하고 있습니다. FYI

EmailComponent는 (은) 더 이상 지원되지 않습니다. 대신 코어 라이브러리를 사용하십시오. 자세한 내용은

은 (관련되는 모든 CakePHP를하지 않고) 간단한 PHP 스크립트에서 이메일을 보낼 수이 링크 http://book.cakephp.org/2.0/en/core-utility-libraries/email.html