IMAP을 통해 전자 메일 메시지를 검색하는 Zend Framework를 배우거나 이해하려고합니다. 우리 웹 호스트는 우리 웹 서버에서 IMAP 확장을 사용하지 않으며 osTicket이 설치되어 있습니다. osTicket의 IMAP 함수 참조를 상관 관계가있는 Zend_Mail 참조로 바꾸고 싶습니다.하지만 Zend_Mail을 좀 더 잘 이해할 필요가 있습니다.Zend Mail Storage Imap.php는 내 서버를 끊고 있습니까?
저는 젠드 프레임 워크 2.2.5를 가지고 있으며 문서를 읽는 데 최선을 다했지만 대부분의 문서는 이전 버전을 대상으로하고 있으며 업데이트 된 버전을 읽는 데 최선을 다하고 있지만, 내가 이해하지 못하는 것 몇 가지가있다.
나는 시작을위한 테스트 스크립트를 만들었지 만, 여기서 실제로 일어나고있는 것을 이해하지 못하고 있으며 약간의 방향을 기대하고 있습니다. 아무것도 include_once 문 문 뒤에 발생하지 제외
<?php
/*******************************************************
* simple php script to verify zend mail functionality *
* *
********************************************************/
define('ROOT_DIR',$_SERVER['DOCUMENT_ROOT'].'/');
define('SUPPORT_DIR',ROOT_DIR.'support/');
define('INCLUDE_DIR',SUPPORT_DIR.'include/');
define('ZEND_DIR',INCLUDE_DIR.'zend/library/'); //ZendFramework-2.2.5
$root = ROOT_DIR;
$support = SUPPORT_DIR;
$incl = INCLUDE_DIR;
$zendir = ZEND_DIR;
var_dump($root);
echo "\n";
var_dump($support);
echo "\n";
var_dump($incl);
echo "\n";
var_dump($zendir);
echo "\n";
echo "Include Imap... ";
include_once(ZEND_DIR.'Zend/Mail/Storage/Imap.php');
if ((include_once(ZEND_DIR.'Zend/Mail/Storage/Imap.php')) !== 1)
{
echo 'Include Imap failed.';
echo "<br>";
}
chdir($zendir);
echo getcwd() . "\n";
$mail_config = array(
'host' => 'imap.gmail.com',
'user' => '[email protected]',
'password' => 'password',
'ssl' => 'SSL',
'port' => 993
);
var_dump($mail_config);
echo "\n";
$mail = new Zend_Mail_Storage_Imap($mail_config);
var_dump($mail);
echo "\n";
var_dump($count = $mail->countMessages());
?>
이 오류없이 실행 나타납니다 : 여기 (개인 정보가 분명히 익명을 위해 수정 된) 내 스크립트입니다. 이것은 나의 화면으로 돌아됩니다 것입니다 :
문자열 (57) "/usr/home/username/public_html/domain.com/"
문자열 (65) "는/usr/홈/사용자 이름/으로 public_html/domain.com/지원/"
문자열 (73) "/usr/home/username/public_html/domain.com/support/include/ "
문자열 (86) "은/usr/home/username/public_html/domain.com/support/include/zend/library/"
스토리지 \ IMAP을 ... 포함
그것은에 getcwd() 또는 위해서 var_dump의 배열 중 하나 또는 메시지의 수를 표시하지 않습니다. 필자는 if 문을 변경해 보았습니다. include_once가 성공적이었고 표시되지 않은 경우 명령문을 반향하도록 작업했는지 확인했습니다.
스크립트가 zend \ mail \ storage \ imap.php에 끊어지고 있습니까? 내가 여기서 올바르게하지 않는 것은 무엇입니까? 내가 말했듯이, 나는 그것을 배우려고 노력하고 있고, v2.2.5를 사용하는 코드 예제를 위해 높고 낮음을 찾고 있었지만 분명히 뭔가 빠졌습니다. 이게 뭐야?
편집 :
은 phpinfo() 내 오류 로그의 위치를 보여, 그래서 내가 처음 내 테스트 스크립트에 다음을 추가하지 않았다
ini_set('track_errors', 1);
error_reporting(E_ALL|E_STRICT);
error_log($php_errormsg,3,"/usr/home/username/public_html/domain.com/support/test/error_log.log");
은 그것은 "의 error_log를 만들었습니다. 로그 "파일을 만들었지 만 비어 있고 Runscope는 스크립트가 실행되는 것을 보지 못했습니까?
오류가 발생했습니다. 화면에 표시되지 않습니다. 오류 로그를 확인하십시오. 오류와 함께 돌아 오십시오;) (그것이 포함되어 있습니다.) – skrilled
테스트 목적으로 Runscope를 통해이 스크립트를 실행하고 있으며 상태 200으로 실행됩니다. 어디에서 오류 로그를 찾을 수 있습니까?)? FWIW - Pop3을 위해 Imap을 바꿔서 같은 결과를 얻었습니다. – mittra
@mittra' php phpinfo();'하고'error_log'의 값을 확인하십시오. 여기에는 오류 로그 경로가 있어야합니다. 공유 호스트 인 경우'log' 폴더 또는'error_log'라는 파일에있을 수 있습니다. – user555