2016-04-11 11 views
0

Postaları aldığımda, gelen kutusunu açın ve iletileri alın; Onları önceki mesaj dizisiyle nasıl karşılaştırabilirim, böylece hangisinin daha önce okuduğunu biliyorum.Java Mail: Yeni Postaları Nasıl Tanıyor

Properties properties = new Properties(); 
properties.put("mail.imaps.host", host); 
properties.put("mail.imaps.port", "993"); 
Session emailSession = Session.getDefaultInstance(properties); 

//2) create the POP3 store object and connect with the pop server 
Store emailStore = emailSession.getStore("imaps"); 
emailStore.connect(user,pw); 

//3) create the folder object and open it 
Folder emailFolder = emailStore.getFolder("INBOX"); 
emailFolder.open(Folder.READ_ONLY); 
Message[] messages = emailFolder.getMessages(); 
+0

önceki mesajları kaydetmek gerekir emin misiniz? Gelen kutusundaki mesajları etkinlik olarak okuyorsunuz. Yani, sen yeni bir mesaj okuyorsun, o zaman aynı mesajı iki kere okuyamazsın. –

+0

iyi benim app postaları (bazı) görüntüler. Bu listeden bir postayı silersem, klasörü yenilediğimde yeniden görünmesini istemiyorum, ancak tüm postaları tekrar alırım. Tabii ki, tarihi, konuyu, vb. Ile karşılaştırabilirim ama son defa aldığım mesajlarda bir Mesajın bulunup bulunmadığından emin olmanın bir yolu var mı? – Ginso

cevap

0

Bu sorun, gereksinimlerinizin tam olarak ne olduğuna bağlıdır. Örneğin, diğer uygulamalar ve/veya kullanıcılar posta kutunuza uygulamanızla aynı anda erişecek mi? Veya uygulamanız posta kutusuna özel erişim var mı?

use the SEEN flag to find messages that you haven't already read.

Ayrıca, daha sonra UID'leri olan iletileri bulmak için işlediğiniz son iletinin (ve klasörün UIDVALIDITY öğesinin) IMAP UID'sini de kaydedebilirsiniz. Detaylar için UIDFolder arayüzüne bakınız.

(pop ilgili kod konuşmasında yorum, ancak kod imap kullanıyor;. Hiç pop3 protokolü answers are quite different kullanmak zorunda varsa)

+0

tankları, bu UID, ne aradığımı. Sadece klasöre bakma fikrine sahip değildim ve Mesajın kendisi sadece klasörün içeriği değiştiyse "yeniden atanabilir" olabilen bir mesaj-mesajını veriyor. Ama sanırım, mesaj silinirse UID tekrar kullanılmayacaktır. – Ginso