2013-04-17 3 views
0

PHP - Codeigniter (Peeker Library)를 백엔드로 사용하고 IMAP를 사용하여 여러 전자 메일 주소에서 전자 메일을 가져옵니다.전자 메일 읽기 imap php

우리는 imap 폴더에 대해 쿼리 할 수있는 복잡한 검색 기준을 사용하여 새 전자 메일에서 검색하고 사서함 이름, 고유 ID (사서함에서 고유함), MySQL 테이블의 일부 헤더 정보 만 검색하는 스크립트의 성능을 향상시킵니다.

  1. 어떻게 Deleted/Moved 항목을 추적 할 수 있습니다 :

    나는이 문제를 함께했다?

  2. 첨부 파일이 존재하는지 여부를 확인할 수있는 방법이 있습니까? (헤더 정보가 첨부 지시자에 대한 실마리를 제공하지 않기 때문에, 전 imap_fetchstructure 사용하려고하지만 처리 시간이 오래 걸리는 첨부를 포함하는 전체 메시지를 판독)

참고

정기적 인 간격으로이 스크립트를 백엔드에서 실행하고 있습니다 (단, 크론 작업이 아닐 경우 외부 응용 프로그램은 보통 간격으로 스크립트를 초기화합니다.)

도와주세요.

감사

답변

0

우선 IMAP에서 첨부 파일이있는 전체 메시지 데이터를 전송할 것을 의미하는 요구 사항은 없습니다. 가정이 잘못되었거나 IMAP 라이브러리에 심각한 버그가 있거나 잘못된 함수를 사용하고 있습니다.

둘째로, UID를 추적하는 것에 대해 언급했지만 UIDVALIDITY에 대해서는 언급하지 않았습니다. 의미를 이해하려면 RFC 3501을 읽으십시오. 프로토콜을 알지 못해도 IMAP를 올바르게 말하는 애플리케이션을 구현할 수있는 방법은 없습니다. 더 자세한 지침은 RFC 4549에 나와 있습니다.

세 번째 질문은 삭제되거나 이동 된 항목을 묻는 것입니다. 기본 IMAP에서는 그렇게 할 수 없습니다. 삭제 된 메시지와 새로 도착한 메시지를 확인하는 유일한 방법은 UID를 명시 적으로 추적하는 것입니다. UIDVALIDITY이 주어졌지만 변경되지 않았다고 가정하면 마지막으로 UID 목록을 지금 얻은 것과 비교하고, 어떤 것이 새롭고 사라 졌는지 확인하십시오. 다시 RFC를 읽으십시오. 여기에는 모든 질문에 대한 답변과 동기화 프로세스를 최적화하는 방법에 대한 제안이 포함되어 있습니다. thesis about IMAP도 있는데 프로토콜 채팅을 더욱 개선하고 확장 프로그램이 어떤 관련이 있는지 자세히 설명합니다. 하지만 쉬운 프로젝트는 아닙니다.

+0

왜 너는 너무 많이 가고 있니? PHP 함수'imap_fetchstructure'는 구조를 분석하기 위해 이메일 본문의 내용을 읽습니다. 당신은 프로토콜에 대해 너무 많이 말하고 있습니다. 그러나 저는 제가 사용하는 언어에 대해 이야기하고 있습니다. 첫 번째 파라에서 내가 잘못된 함수를 사용하고 있거나 imap 라이브러리에 버그가 있다고했습니다. 좀 더 설명해 주시겠습니까? – Red

+1

좋습니다.PHP 함수''imap_fetchstructure''는 흥미로운 작업을 c-client의''mail_fetchstructure_full''로 오프로드합니다. 이 함수는 (UW-IMAPD의''c-client'' 라이브러리에서)'BODY' 물건을 가져 오는 IMAP 명령을 보냅니다 - 그러나 RFC 3501에 정의 된 것처럼 이것은 실제로 ** 구조 **입니다 메시지 본문의 전체 원시 텍스트가 아니라 메시지 본문의 따라서 PHP의''imap_fetchstructure''를 호출하면 ** IMAP 연결을 통해 메시지 본문의 내용을 읽지 않습니다 **. –

+0

좋아, 그럼 첨부 파일이있는 메시지를 읽는 데 오랜 시간이 걸리는 이유는 무엇입니까? 'imap_fetchstructure'가 모든 것을 물리적으로 다운로드한다고 말하는 것이 아닙니다. 첨부 파일로 12 mB의 zip 파일이 있고'imap_fetchstructure'만이 내용 유형, 크기, 이름 등을 읽는다면 괜찮습니다. – Red

0

당신이 php imap를 사용하지 않는 이유는 무엇입니까? 그것은 peeker 라이브러리와 PHP imap에 비해 간단하고 매우 빠르며 항상 새로운 이메일을받습니다.

+0

Peeker는'PHP IMAP'으로 만들어졌습니다. – Red