2015-01-19 6 views
0

클라이언트 전자 메일을 읽고 첨부 파일을 표준 형식으로 변환하는 C# Windows 서비스를 대체하기 위해 PHP 스크립트를 개발 중입니다. IMAP 조각은 ImageMagick으로 큰 문서를 변환하기 시작할 때까지 잘 작동합니다. 그런 다음 실행하려고하는 모든 IMAP 함수에서 오류가 발생하기 시작합니다. "비 객체의 속성을 가져 오려고합니다." 또한 그 시점부터 전자 메일을 .eml 파일에 저장하는 기능은 기본적으로 빈 파일 인 것을 저장하기 시작하고 '보이지 않는'종료에서 '보았다'각 전자 메일을 설정하는 코드가 작동합니다.ImageMagick과 PHP IMAP을 함께 사용하면 문제가 발생합니다.

첨부 파일이 가장 큰 이메일 처리를 건너 뛸 경우 모든 것이 정상적으로 작동합니다.

.eml 파일을 저장하고 '보이지 않음'을 'seen'로 설정하는 등 ImageMagick 명령을 주석 처리하는 코드를 실행하면 ImageMagick과 관련이 있지만, 무엇을 알아낼 수 있습니다.

변환이 완료 될 때마다 $ imagick-> clear()를 추가했습니다.

$ imagick 개체를 만든 직후에 이것을 추가했습니다 : $ imagick-> setResourceLimit (imagick :: RESOURCETYPE_MEMORY, 256); $ imagick-> setResourceLimit (imagick :: RESOURCETYPE_MAP, 256); $ imagick-> setResourceLimit (imagick :: RESOURCETYPE_AREA, 1512); $ imagick-> setResourceLimit (imagick :: RESOURCETYPE_FILE, 768); $ imagick-> setResourceLimit (imagick :: RESOURCETYPE_DISK, -1);

의견이 있으십니까?

감사합니다.

+0

소요 시간은 얼마나됩니까? IMAP 연결 시간이 초과 되었습니까? – Max

+0

방금 ​​문제가 된 2 건의 전자 메일을 포함하여 6 건의 전자 메일에 대해 프로세스를 실행했습니다. 달리는 데 20 분이 걸렸습니다. 나는이 코드를 코드에 추가하여 뚜렷한 효과를 보이지 않았다. (여전히 첫 번째 포스트에서 설명한 것과 같은 동작을 보인다.) imap_timeout (IMAP_OPENTIMEOUT, 6000); imap_timeout (IMAP_READTIMEOUT, 6000); imap_timeout (IMAP_WRITETIMEOUT, 6000); 내 로그 파일 끝에 다음과 같은 오류가 있습니다. 0 알 수 없음 : 보안 문제 : 안전하지 않은 서버가 보급 됨 AUTH = PLAIN (오류 코드 = 1) 0 알 수 없음 : [닫힘] IMAP 연결이 끊어졌습니다 (서버 응답) (오류 코드 = 2) 0 알 수 없음 : [닫기] IMAP 연결이 끊어졌습니다 (errflg = 2) (26 회 발생) – Mike

+0

어떤 서버를 사용하고 있습니까? 일부 서버는 유휴 상태 인 경우 연결을 닫습니다. 특히 야후의 IMAP 서버는 2 분 동안 사용하지 않으면 연결을 종료합니다. 어쩌면 당신은이 처리를 오프라인에서해야합니다 .... – Max

답변

1

IMAP 연결이 시간 초과 될 수 있습니다. 일부 서버는 매우 짧은 시간 동안 사용하지 않을 경우 연결을 종료합니다. 야후의 경우 2 분 정도입니다.

관련 문제