2013-03-05 3 views
0

PHP를 사용하여 단일 사서함에서 전자 메일을 검색하고 데이터베이스에 저장할 수 있습니다. 나는 메시지를 다시 데이터베이스로 "복원"하는 옵션을 원하지만.IMAP 사서함으로 전자 메일 가져 오기

제 동료는 PHP와 함께 제공되는 imap_append() 함수를 살펴보아야한다고 말했습니다. 사용할 수있는 예제는 아주 드뭅니다.

메시지를 "복원 된"상태로 유지하기 위해 삽입해야 할 필드가 확실하지 않습니다. 내 데이터베이스에있는 전자 메일의 모든 필드를 갖고 있습니다 (그러나 필요한 경우 추가 필드를 추가 할 수 있음).

내 질문; 필드는 모든 전자 메일을 포함해야하고 나에게 나는이 작업을 수행 할 수있는 방법의 예 (imap_append() 나 ...?)

답변

0

추가]은 두 개의 매개 변수를 취 줄 수있는 사람이되는 다음 INTERNALDATEFLAGS은. 다른 모든 것은 메시지 자체에 포함됩니다. 원본 메시지에서 날짜와 플래그를 가져올 수 있습니다. 또는 날짜 헤더를 읽고 내부 날짜로 사용하여 가짜로 만들 수 있습니다.

+0

원본 메시지의 거의 모든 필드를 읽을 수 있지만 패키지를 원래의 메시지로 가져올 수있는 방법이 없으며 패키지를 어떻게해서 든 "복원"할 수 있습니까? – Floris

0

IMAP RFCAPPEND Command에 대한 정보를 읽으십시오. 인용 :

6.3.11. APPEND Command 

    Arguments: mailbox name 
       OPTIONAL flag parenthesized list 
       OPTIONAL date/time string 
       message literal 

옵션 인수에 대해 걱정할 필요가 없습니다. 고려해야 할 중요한 사항은 사서함 이름 (메시지를 업로드 할 폴더)과 메시지 리터럴 (메시지 자체)입니다. 메시지 자체는 모든 헤더 필드를 포함하는 MIME 데이터이므로 실제로 걱정할 필요가 없습니다. 전체 메시지 데이터를 데이터베이스에 저장했는지 확인하면 전체 메시지를 복원 할 수 있습니다.

PHP로 IMAP을 사용 해 본 적이 없지만, 내가 말한 imap_append() 명령을 살펴 봤는데 방금 설명한 설명에 해당하는 인수가 있습니다. $ mailbox 및 $ message입니다. $ mailbox에서 폴더의 이름 (예 : "INBOX")을 입력하면 복원 할 메시지 데이터가 $ message로 이동합니다.

관련 문제