से संदेश प्राप्त करने के बाद मैं javax.mail पैकेज का उपयोग कर एक IMAP फ़ोल्डर से जावा का उपयोग करके ईमेल लाने के लिए लिख रहा/सीख रहा हूं। मैं फ़ोल्डर में अंतिम एन संदेशों को पुनः प्राप्त करने में सफलतापूर्वक सक्षम था, हालांकि मैं निर्दिष्ट दिनांक से संदेशों को पुनर्प्राप्त करने के लिए एक उदाहरण बनाना चाहता हूं। कोई उदाहरण?जावा इमेप संदेश
उत्तर
आप जावा मेल पैकेज में सर्चटर्म कक्षाओं का भी उपयोग कर सकते हैं।
SearchTerm olderThan = new ReceivedDateTerm(ComparisonTerm.LT, someFutureDate);
SearchTerm newerThan = new ReceivedDateTerm(ComparisonTerm.GT, somePastDate);
SearchTerm andTerm = new AndTerm(olderThan, newerThan);
inbox.search(andTerm);
उपरोक्त का कुछ संयोजन एक निश्चित सीमा के भीतर तिथियां प्राप्त करने का एक बेहतर तरीका साबित होना चाहिए।
मैं प्राप्तडेटार्म का उपयोग करने की कोशिश कर रहा हूं लेकिन ऐसा लगता है कि यह मुझे सही परिणाम नहीं दे रहा है। मैं बस पिछले 1 मिनट में प्राप्त सभी मेल या मेरे परीक्षण शुरू होने के समय से प्राप्त सभी मेल पुनर्प्राप्त करना चाहता हूं। यह उम्मीद के अनुसार काम नहीं कर रहा है .. यही वह है जो मैं कर रहा हूं। 'सर्चटर्म सेंट = नया एंडटर्म (नया विषय टर्म (विषय खोजफ्रेज़), नया बॉडीटर्म (बॉडीशर्चफ्रेज़)); st = new andTerm (सेंट, नया प्राप्त किया गयाडेटार्म (ComparisonTerm.GE, searchMailReceivedDateGE)); 'मैंने' YoungerTerm (80) 'का उपयोग करने का भी प्रयास किया है और यह भी काम नहीं करता है। कोई भी समस्या जानता है? धन्यवाद! – OverrockSTAR
ध्यान देने योग्य एक बात: IMAP केवल समय के साथ खोज सकता है, समय नहीं, इसलिए यदि कोई अंतिम अपडेट के बाद से सभी नए मेल प्राप्त करना चाहता है, तो उन्हें अपनी तुलना तिथि का समय मध्यरात्रि में सेट करना होगा और आगे की जांच करना होगा ग्राहक पर डुप्लिकेट। – Tobl
यहां मैं क्या आया हूं। यह मेरे लिए काम करता है, लेकिन शायद इसके बारे में जाने का सबसे अच्छा तरीका नहीं है। इसे सुधारने के लिए कोई सुझाव?
Date from; //assume initialized
Store store; //assume initialized
Folder inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);
int end = inbox.getMessageCount();
long lFrom = from.getTime();
Date rDate;
long lrDate;
int start = end;
do {
start = start - 10;
Message testMsg = inbox.getMessage(start);
rDate = testMsg.getReceivedDate();
lrDate = rDate.getTime();
} while (lrDate > lFrom);
Message msg[] = inbox.getMessages(start, end);
for (int i=0, n=msg.length; i<n; i++) {
lrDate = msg[i].getReceivedDate().getTime();
if (lrDate > lFrom) {
System.out.println(i + ": "
+ msg[i].getFrom()[0]
+ "\t" + msg[i].getSubject());
}
}
निश्चित रूप से एक अच्छा दृष्टिकोण नहीं है क्योंकि यह आईएमएपी क्षमताओं के साथ फ़िल्टर किए बिना पहले ईमेल प्राप्त करता है। मेरा मानना है कि दस गुना वृद्धि यह बहुत अच्छी नहीं है (बॉक्स में 10k ईमेल की कल्पना करें) – Konstantin
सभी संदेशों को लाने के बजाय आपको सर्वर साइड सर्च का लाभ उठाने का प्रयास करना चाहिए। यह खोजjavax.mail.Folder की विधि का उपयोग कर काम करता है। आपको Message.getReceivedDate() पर मानदंडों के आधार पर शायद अपना खुद का सर्चटर्म लिखना होगा।
यदि सर्वर साइड सर्च काम नहीं करती है, तो आप fetbox प्रोफाइल का उपयोग करने का प्रयास कर सकते हैं, यानी inbox.getMessages() का उपयोग inbox.fetch (संदेश [] msgs, FetchProfile fp)। fetch के लिए javadoc कहता है: ग्राहक इस विधि का उपयोग यह इंगित करने के लिए करते हैं कि दिए गए संदेश सीमा के लिए निर्दिष्ट आइटमों की आवश्यकता होती है। कार्यान्वयन से इन मदों को दिए गए संदेश सीमा के लिए कुशल तरीके से पुनर्प्राप्त करने की उम्मीद है। ध्यान दें कि यह विधि वांछित वस्तुओं को प्रीफेच करने के लिए कार्यान्वयन के लिए सिर्फ एक संकेत है।
public class CheckDate {
public void myCheckDate(Date givenDate) {
SearchTerm st = new ReceivedDateTerm(ComparisonTerm.EQ,givenDate);
Message[] messages = inbox.search(st);
}
// in main method
public static void main(String[] args) throws ParseException{
SimpleDateFormat df1 = new SimpleDateFormat("MM/dd/yy");
String dt="06/23/10";
java.util.Date dDate = df1.parse(dt);
cd.myCheckDate(dDate);
}
}
पिछले महीने में सभी मेल:
Calendar cal = Calendar.getInstance();
cal.roll(Calendar.MONTH, false);
Message[] search = folder.search(new ReceivedDateTerm(ComparisonTerm.GT, cal.getTime()));
- 1. नवीनतम इमेप सर्वर लाइब्रेरी
- 2. जावा से एरलांग संदेश
- 3. जावा आउटपुट कंसोल त्रुटि संदेश?
- 4. जावा संदेश सेवा और हास्केल
- 5. जावा में रेल फ्लैश संदेश
- 6. सरल जावा संदेश प्रेषण प्रणाली
- 7. मैं विम में पेस्ट मोड में इमेप कैसे काम करूं?
- 8. पायथन मल्टीप्रोसेसिंग: मानचित्र और इमेप के बीच क्या अंतर है?
- 9. संदेश संदेश भेजें पूर्व संदेश संदेश
- 10. जावा में संदेश भेजते समय MessagingExceptionIOException?
- 11. संदेश
- 12. xml संदेश
- 13. जेएमएस संदेश प्राथमिकता संदेश
- 14. एसक्यूएस संदेश
- 15. संदेश पास क्या है?
- 16. संदेश संसाधन मौजूद है लेकिन संदेश स्ट्रिंग/संदेश तालिका
- 17. संदेश कतार (जेएमएस)
- 18. मैं अपने जावा एप्लेट के लिए त्रुटि संदेश कैसे देखूं?
- 19. जावा में एक साधारण चेतावनी संदेश कैसे पेश करें?
- 20. क्या जावा प्रोटोकॉल बफर संदेश का नकल करना संभव है?
- 21. स्टैंडअलोन जावा एप्लिकेशन से जेएसएसएस एएस 7 संदेश कतार
- 22. "Faceted परियोजना prblem (जावा संस्करण बेमेल)" त्रुटि संदेश
- 23. जावा: उच्च-प्रदर्शन संदेश-पासिंग (सिंगल-निर्माता/सिंगल-उपभोक्ता)
- 24. जावा और संदेश ब्रोकर का उपयोग कब करें?
- 25. जावा वेब स्टार्ट त्रुटि "संदेश फ़ाइल नहीं मिल सका"
- 26. जेएनएलपी का उपयोग करके एप्लेट: जावा कंसोल में संदेश
- 27. मैं जावा से एक एसएमटीपी संदेश कैसे भेजूं?
- 28. जावा में एसएमएस संदेश फ़िल्टर एप्लिकेशन नोकिया सिम्बियन S60
- 29. जावा: 10sec के लिए संदेश संवाद दिखाएं और हटाएं?
- 30. ओरेकल: जेएमएस संदेश
संबंधित: http://stackoverflow.com/questions/6963256/javamail-search-by-receiveddate-doesnt-work-down-to- दूसरा – kevinarpe