2012-07-06 15 views
5

के लिए लाइब्रेरी मैं जावा लाइब्रेरी की तलाश में हूं जो मुझे IMAP और अधिमानतः आईडीईएल का उपयोग करने में मदद करता है।IMAP IDLE

मुझे जावा एप्लिकेशन लिखने की आवश्यकता है जिसे SSL का उपयोग करके नए ईमेल को अधिसूचित किया गया है और पुनर्प्राप्त किया गया है। एप्लिकेशन HMailServer द्वारा होस्ट किए गए खाते के इनबॉक्स की जांच करेगा।

अब तक मैं देखा है:

Apache Commons Imap लेकिन वह निष्क्रिय लागू करने के लिए प्रतीत नहीं होता।

JavaPushMail लेकिन यह पर्याप्त रूप से प्रलेखित नहीं है (मैं इसे काम करने में सक्षम हो सकता हूं लेकिन मुझे यकीन नहीं है कि मेरे उत्तराधिकारी खुश होंगे)।

Javamail, उनका IMAPFolder एक अच्छा विकल्प जैसा प्रतीत होता है लेकिन मैं समय पर छोटा हूं और इसमें एक स्थिर लाइब्रेरी लिखने में समय लगेगा।

Chilkatsoft $ 199 लाइब्रेरी है, यह थोड़ा सा सस्ता है (मुझे पता है, मुफ्त और अच्छा विश्वसनीय कोड हमेशा आने में आसान रहता है :) इसके अलावा, मुझे यकीन नहीं है कि यह आईडीईएल को संभालता है।

मैं ऐसे समाधान के लिए जा सकता हूं जो इनबॉक्स को दस्तावेज और स्थिर करता है।

मैं कुछ उदाहरण कोड, पुस्तकालय या सही दिशा में धक्का की सराहना करता हूं।

सभी "मैं" के लिए खेद है और अग्रिम धन्यवाद।

उत्तर

2

मैं आगे बढ़ गया और Javamail का उपयोग किया। बस सोचें कि यह अजीब है कि इसके लिए कोई सभ्य रैपर/क्लाइंट अभी तक लिखा नहीं गया है। अच्छा, यह सब नहीं हो सकता है। जवाब के लिए धन्यवाद, कॉनर शेरमेन।

2

मैंने जवामेल को छोड़कर आपके द्वारा वर्णित किसी भी पुस्तकालय के साथ काम नहीं किया है, लेकिन मैं इसके लिए झुका सकता हूं। मुझे एक ऐसा एप्लिकेशन लिखना पड़ा जो एक एक्सचेंज सर्वर का चुनाव करता है और सभी नए मेल को इनबॉक्स में पार्स करता है। यहां उस प्रोजेक्ट में इस्तेमाल किए गए कोड का एक स्निपिट है। मैंने सभी मतदान इन-ऐप किया, इसलिए मैं सर्वर या किसी भी चीज़ से पुश नोटिफिकेशन नहीं देख रहा था। मुझे पता है कि यह ठीक नहीं है कि आप क्या पूछ रहे थे, लेकिन मुझे उम्मीद है कि यह सही दिशा में एक कदम है।

import java.util.Properties; 
import javax.mail.* 
import javax.mail.search.FlagTerm; 


public class Driver { 
    public static void main(String[] args){ 
     // Create properties (disable security checks on server) 
     Properties props = new Properties(); 
     props.put("mail.imaps.ssl.checkserveridentity", "false"); 
     props.put("mail.imaps.ssl.trust", "*"); 

     // Get session 
     Session session = Session.getDefaultInstance(props, null); 

     try{ 
      // Get the store 
      Store store = session.getStore("imaps"); 
      store.connect("servername", "username", "password"); 

      //connection configuration 
      Folder folder = store.getFolder("INBOX"); 
      folder.open(Folder.READ_WRITE); 

      //get all unread messages in the inbox 
      FlagTerm ft = new FlagTerm(new Flags(Flags.Flag.SEEN), false); 
      Message[] messages = folder.search(ft); 

      for (int i = messages.length -1; i>=0; i--) { 
       messages[i].setFlag(Flags.Flag.SEEN, true); 
      } 
      // Close connection 
      folder.close(false); 
      store.close(); 
     } 
     catch(Exception e){ 
     } 
    } 
} 
-1

मैं इसे अपने आप उपयोग नहीं किया है, लेकिन इस पुस्तकालय अच्छा लग रहा है:

https://github.com/MailCore/mailcore2

MailCore 2 ई-मेल प्रोटोकॉल IMAP, पॉप और एसएमटीपी के साथ काम करने के लिए एक सरल और अतुल्यकालिक एपीआई प्रदान करते हैं। एपीआई को जमीन से फिर से डिजाइन किया गया है।

+0

क्या यह जावा से उपयोग योग्य है? – arnt

+0

@arnt जावा एपीआई दस्तावेज़ हैं। ऐसा लगता है कि जावा के माध्यम से C++ कोड को कॉल करना संभव है। मुझे लगता है कि यह जावा से प्रयोग योग्य है। लेकिन यह शुद्ध जावा नहीं है। मुझे लगता है कि आपको प्रत्येक मंच के लिए कोर संकलित करने की आवश्यकता है। – guettli