2013-07-15 1 views
6

I 메일 서버의받은 편지함에 연결할 수있는 다음과 같은 코드가 있습니다Gmail에서뿐만 아니라 보낸 편지함에서 메일을 가져 오는

Store popStore = popSession.getStore("pop3"); 
popStore.connect(address, userName, password); 
Folder inboxFolder = popStore.getFolder("Inbox"); 

올리기는 새로운 메일 확인이. 이제 Gmail에 연결할 때 실제로받은 편지함 폴더에서만 메일을받을 때 보낸 편지함에서 메일을 가져옵니다. 야후와 잘 작동합니다.

어떤 아이디어 Gmail에서이 문제를 일으킬 수 있습니까?

편집 : 나뿐만 아니라받은 편지함으로 노력하고 결과는 코드 조각되어 다음과 같은

+0

"INBOX"를 시도해보십시오. "보낸 편지함"을 언급하는 항목은 앞의 "RE :"와 동일한 제목 줄이있는 명사구에서 답장을 보낼 수도 있습니다. – Dreamer

+0

함께 시도 할 것입니다 받은 편지함. 그리고 아니요, 다운로드하는 계정의 고유 한 주제가있는 새 메일을 보내서 설명한 시나리오에 대해 확인했습니다. – rajesh

+0

@rajesh : 실제 코드를 표시하고 있습니까? 더 많은 작업 예제를 붙여 넣는 것은 어떻습니까? – Jayan

답변

4

입니다. Gmail을 사용하여 확인한 경우받은 편지함과 보낸 메일이 중복되지 않습니다.

javax.mail.Folder[] folders = store.getDefaultFolder().list("*"); 
for (javax.mail.Folder folder : folders) { 
    if ((folder.getType() & javax.mail.Folder.HOLDS_MESSAGES) != 0) { 
     if (folder.getFullName().equalsIgnoreCase("[Gmail]/Sent Mail") 
       || folder.getFullName().equalsIgnoreCase("Inbox")) { 
      System.out.println(folder.getFullName() + ": " + folder.getMessageCount()); 
      folder.open(Folder.READ_ONLY); 
      for (Message m : folder.getMessages(
           folder.getMessageCount() - 5, 
           folder.getMessageCount())) { 
       System.out.println("m.getSubject() = " + m.getSubject()); 
      } 
      folder.close(true); 
     } 
    } 
} 
+0

'for (메시지 m : folder.getMessages (folder.getMessageCount() - 5, folder.getMessageCount())) '5 개의 메시지 만 확인 하시겠습니까? – rajesh

3

우선이

Folder folder = store.getDefaultFolder(); 
folder = folder.getFolder("INBOX"); 
folder.open(Folder.READ_WRITE); 
3

재미있는 문제를하려고 (이 형식에 대한 답변으로 게시, 코멘트 있었어야). 나는 조금 연구를하고있는 구글이 말한다 this post을 발견

당신이 POP를 사용

, 모든 메시지는 스팸, 휴지통 및 채팅을 제외하고, 클라이언트에 다운로드됩니다. 웹 인터페이스에서 보낸 메시지를 메일 클라이언트의받은 편지함으로 다운로드하지 않으려면 클라이언트 내에 필터를 만드는 것이 좋습니다.

이 보낸 사람으로 필터를 만들려면이 작업을 수행 할 수 있습니다 [email protected] 이메일 주소입니다

String filter = "Not([SenderEmailAddress] = '[email protected]')"; 
Items inboxItems = inboxFolder.Items.Restrict(filter); 

. 이 필터는 자신 이외의 사람이 보낸 항목 만 제공합니다. 또한 Restrict 메서드는 Find으로 바꿀 수 있지만 Restrict은 더 큰 데이터 집합의 경우 훨씬 빠릅니다.

+1

흥미로운 찾기. 그러나 나는이 표시가 내가 응답 한 우편물에 대해서만 일어나고 있다고 생각한다. 새롭게 작성된 메일이 있습니다. 그들은받은 편지함 레이블이 없습니다. – rajesh

+0

당신이 보낸 메일에'받은 편지함 '레이블이 있으면이 필터로 수정됩니다. 나는 이것이 구글이 이메일의 대화보기를 다루는 방법에 기인한다고 생각한다. –

+0

하지만 문제는받은 편지함 라벨이없는 메일 때문입니다. 내 코멘트를 아래의 Armaan의 대답 – rajesh

2

답장을 사용하여 메일을 통해 통신하거나 모든 Gmail에 답장하는 경우받은 편지함 메일로 간주됩니다. 왜냐하면 그것은 대화의 관점이기 때문입니다. 그래서 보낸 메일은받은 편지함 메일이기도합니다. 그래서 당신은 당신의 메시지에서 그 메일을 얻을 것입니다.

this 공식 google 답장을 읽으십시오.

+0

하지만 새로 작성된 메시지에서도 문제가 발생합니다. 단지 답장이 아닙니다. – rajesh

+0

메시지를 작성하는 경우 수신자가 해당 메시지에 회신하면 Google은 원래 메시지를 대화보기 용받은 편지함으로 옮깁니다. 회신을하지 않고 새 메시지 *를 볼 이유가 확실하지 않습니다 –

+0

수신자 응답이 없습니다. 수신함에 라벨이 지정되지 않았음에도 불구하고 이해할 수있는 시나리오가 있었지만 메일이 새로 작성되어 전송되어 다시 답장되지 않는 문제가 있습니다. 영형 – rajesh