2012-11-20 2 views
2

PHP Imap 라이브러리를 사용하여 한 IMAP 서버에서 다른 IMAP 서버로 메일을 복사합니다. http://www.php.net/manual/en/ref.imap.phpiPhones (imap_append)에 잘못된 이메일 날짜가 있습니다.

메일 날짜에 문제가 있다는 것을 제외하고 내 스크립트가 제대로 작동합니다.

MS Outlook의 새로운 imap 계정에 연결하는 경우 날짜는 정확하지만 내 iPhone과 동일한 계정에 연결하면 이메일 날짜가 오늘 날짜 (복사 프로세스 날짜)로 표시됩니다.

내 질문은 : iPhone이 이메일 헤더에서 이메일 날짜를 어떻게 감지합니까? imap_append를 사용할 때 어떻게 헤더를 올바르게 만들 수 있습니까?

답변

1

메시지가 서버에서 생성 될 때 서버에서 유지 관리하는 IMAP 서버 INTERNALDATE 필드를 사용 중일 수 있습니다.

은 RFC는 APPEND 명령, 표시 :

If a date-time is specified, the internal date SHOULD be set in 
    the resulting message; otherwise, the internal date of the 
    resulting message is set to the current date and time by default. 

당신은 타임 스탬프 추가 할 제공하는 인터페이스를 가지고 있습니까?

편집 :

예, imap_headerinfo 사용할 수 있습니다 :

$ headerinfo = imap_headerinfo ($ source_imap, $의 MESSAGE_NUMBER);
$ internal_date = date ('d-M-Y H : i : s O', $ headerinfo-> udate);

imap_append ($ imap_stream, $ mailbox, $ message, $ options, $ internal_date);

해결책을 테스트 한 결과 제대로 작동했지만 iPhone의 날짜가 정확합니다.

+0

그것은 가능할 수 ... $의 internal_date는 내가 PHP 버전 5.3.1을 사용하고 PHP 버전에서 5.3.2 .... 을 imap_append하는 parametre으로 추가됩니다 : '( 인가가 어떤 이 문제로 인해 iPhone에서 문제가 발생하는지 확인할 수있는 변경 사항이 있습니까? –

+0

이메일을 확인할 수 없습니다. 이메일의 날짜 헤더를 사용하지 않으면 사용 가능성이 높음을 알릴 수 있습니다. 서버에 의해 제공된 'INTERNALDATE'. 나는 아이폰이 없다. – Max

관련 문제