2012-02-08 1 views
0

내 사서함에서 메일을 확인한 다음 일부 변환을 수행하는 cron 작업을 작성하려고합니다. 나는 PHP IMAP 확장을 사용 중이며 POP3를 통해 (호스팅되는) 사서함에 액세스하고 있습니다.PHP IMAP을 사용하여 사서함에서 동일한 메시지를 계속 다운로드하는 방법

지금 테스트 중이며 메일 박스에 하나의 전자 메일을 보유하고 행복 할 때까지 해당 전자 메일에 대한 테스트를 계속하고 싶습니다.

이메일을 확인한 후에는 더 이상 다운로드하지 않으며 "Mailbox empty"가 표시됩니다. 누구든지 시간을 절약 할 수있게 도와 주며 내가 이미 확인한 메일을 계속 확인할 수 있도록 알려줄 수 있습니까?

+0

이미 시도한 코드를 보여줄 수 있습니까? – Alex

+0

'$ imap = imap_open ("{pop.gmail.com:995/pop3/ssl}INBOX", "[email protected]", "password");과 같이 간단하게 두 번 실행하면 사서함이 비어있는 오류가 발생합니다 . – Gausie

+0

다음은 imap_open 이후입니까? –

답변

1

당신이 POP3를 통해 메일을 가져올 때, 두 가지 옵션이 있습니다 :로부터의 메일을 읽을 수 있습니다

  • 팝 (이 종종 기본값) 서버에서 메일을 가져올 수 있습니다 또는
  • 팝 (이라고 서버가이를두고 "서버에두고) 당신은 서버에 떠날 필요

.라는 깃발도 있습니다

"WHI 결정한다 "볼 ch 메일은 읽지 않은 상태입니다. 이 플래그를 올바르게 처리해야합니다. 그렇지 않으면 메일을 요청할 수 있으며 귀하의 메일은 새로운 메일이 아닙니다.

imap_status()는 읽기 플래그를 설정하고 imap_num_msg()는 플래그를 건드리지 않습니다.

imap_fetchstructure()는 메시지 구조를 가져올뿐만 아니라 메시지 전체를 가져오고 의심되는 부분은 읽은 메일을 표시합니다. Thunderbird와 같은 클라이언트에서 명시 적으로 메일을 새로운 것으로 (읽지 않은 상태로) 표시 할 때 변경 사항이 있는지 확인하십시오. 메일을 읽을 때 검은 색으로 바뀌는 개요에 녹색 풍선이 있습니다. 그것을 클릭하면 읽지 않은 메일을 표시합니다.

+0

서버에 메시지를 확실히 남기고 있습니다 (표준 클라이언트를 통과 할 수 있고 여전히 그곳에 있음을 알 수 있기 때문에). 표시된 플래그가 서버 또는 클라이언트에 의해 유지됩니까? 표시된 – Gausie

+0

은 서버에서 유지 관리됩니다. 일반 메일 클라이언트 (예 : 썬더 버드)로이 계정에 액세스하면 새 메일 또는 읽지 않은 메일을 볼 수 있습니다. –

+0

표준 클라이언트가 메일을 캐싱하지 않는다고 확신하십니까? –