दिलचस्प पोस्ट
प्रोग्रामर एंड्रॉइड फोन के फोन नंबर प्राप्त करें मैं ड्रॉपबॉक्स फ़ोल्डर में स्थित स्थिर सामग्री की सेवा के लिए स्प्रिंग बूट का उपयोग कैसे करूं? जावा: क्लास.इस लिस्प निष्पादनीय यूआईटीबार आईओएस 7 में चयनित आइटम छवियां नहीं दिखा रहा है ऑब्जेक्ट को दशमलव में कास्ट करें? (नल योग्य दशमलव) यह देखने के लिए एक स्ट्रिंग जांचें कि क्या सभी वर्ण हेक्साडेसिमल मान हैं एक WPF / MVVM अनुप्रयोग में निर्भरता इंजेक्शन कैसे संभालना है जावास्क्रिप्ट कुंजीकोड बनाम चारकोडा जावा में डेस्कटॉप पथ कैसे प्राप्त करें अजगर के साथ वाल्ग्रिंड का उपयोग कैसे करें? फ्लोट से परिवर्तन करने से मूल्य में परिवर्तन क्यों हो सकता है? मैक पर ओपनसीवी यूएसबी वेब कैमरा खोल नहीं रहा है कैसे iPhone 4 स्क्रीन संकल्प के लिए समायोजित करने के लिए? प्रत्येक शब्द के पहले अक्षर को कैपिटल कैसे करें, जैसे 2-शब्द का शहर?

जीएमएम से IMAP का उपयोग करते हुए जावा अनुप्रयोग में मेल प्राप्त करना

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

यहां मेरा कोड है:

Properties props = System.getProperties(); props.setProperty("mail.imap.host", "imap.gmail.com"); props.setProperty("mail.imap.port", "993"); props.setProperty("mail.imap.connectiontimeout", "5000"); props.setProperty("mail.imap.timeout", "5000"); try { Session session = Session.getDefaultInstance(props, new MyAuthenticator()); URLName urlName = new URLName("imap://MYUSERNAME@gmail.com:MYPASSWORD@imap.gmail.com"); Store store = session.getStore(urlName); if (!store.isConnected()) { store.connect(); } } catch (NoSuchProviderException e) { e.printStackTrace(); System.exit(1); } catch (MessagingException e) { e.printStackTrace(); System.exit(2); } 

मैं टाइमआउट मान सेट करता हूं ताकि यह "हमेशा के लिए" समयबाह्य न हो। साथ ही, माइआउथिकेटर के पास उपयोगकर्ता नाम और पासवर्ड भी है, जो यूआरएल के साथ बेमानी लगता है। प्रोटोकॉल को निर्दिष्ट करने का एक और तरीका है? (मैंने इसे आईओएपी के लिए जावाडॉक में नहीं देखा था।)

Solutions Collecting From Web of "जीएमएम से IMAP का उपयोग करते हुए जावा अनुप्रयोग में मेल प्राप्त करना"

इमेज का उपयोग करना एक महान सुझाव था दिए गए उत्तरों में से केवल मेरे लिए काम नहीं किया, इसलिए मैंने कुछ और और कुछ काम किया जो कि काम किया मेरा कोड अब कैसे दिखता है

 Properties props = System.getProperties(); props.setProperty("mail.store.protocol", "imaps"); try { Session session = Session.getDefaultInstance(props, null); Store store = session.getStore("imaps"); store.connect("imap.gmail.com", "<username>@gmail.com", "<password>"); ... } catch (NoSuchProviderException e) { e.printStackTrace(); System.exit(1); } catch (MessagingException e) { e.printStackTrace(); System.exit(2); } 

यह अच्छा है क्योंकि यह तस्वीर के बाहर अनावश्यक प्रमाणक लेता है। मुझे खुशी है कि यह काम किया है क्योंकि SSLNOTES.txt मेरे सिर को स्पिन करते हैं I

जावामेल में, आप imaps पर आईएमएपी का उपयोग करने के लिए URL स्कीम के रूप में imaps उपयोग कर सकते हैं। (अधिक जानकारी के लिए अपने SSLNOTES.txt वितरण में SSLNOTES.txt देखें।) उदाहरण के लिए, imaps://username%40gmail.com@imap.gmail.com/INBOX

इसी तरह, Gmail के माध्यम से ईमेल भेजने के लिए smtps का उपयोग करें जैसे, smtps://username%40gmail.com@smtp.gmail.com/ । दोबारा, अधिक जानकारी के लिए SSLNOTES.txt पढ़ें। आशा करता हूँ की ये काम करेगा!

आपको इमेज के लिए निम्न गुणों का उपयोग करना होगा:

 props.setProperty("mail.imaps.host", "imap.gmail.com"); props.setProperty("mail.imaps.port", "993"); props.setProperty("mail.imaps.connectiontimeout", "5000"); props.setProperty("mail.imaps.timeout", "5000"); 

नोटिस यह "imaps" है, "imap" नहीं, क्योंकि प्रोटोकॉल का उपयोग आप imaps (IMAP + SSL) कर रहे हैं

आपको जीमेल से केवल SSL का उपयोग करना होगा निम्न गुणों को स्थापित करने से आपके लिए उसे लागू किया जाएगा।

 props.setProperty ("mail.imap.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
 props.setProperty ("mail.imap.socketFactory.fallback", "गलत");

यदि आप Gmail के साथ जावामेल का उपयोग करने पर अधिक नमूना कोड चाहते हैं (जैसे Gmail लेबल को IMAP फ़ोल्डर नामों में परिवर्तित करना, या IMAP IDLE का उपयोग करना), तो मेरे कार्यक्रम GmailAssistant SourceForge पर जांचें ।

चेक http://g4j.sourceforge.net/ इस एपीआई का उपयोग करके बनाया गया एक न्यूनतम जीमेल क्लाइंट है

मैंने दुकान पाने के लिए निम्नलिखित गुणों का इस्तेमाल किया और यह अच्छी तरह से काम करता है।

"mail.imaps.host" : "imap.gmail.com"
"mail.store.protocol" : "imaps"
"mail.imaps.port" : "993"

यहां एक क्लासिक अकाउंट nickname@gmail.com और एक बिज़नेस अकाउंट employee@business.com को देखते हुए, मेरी टीम और मैं के लिए क्या काम किया है:

  final Properties properties = new Properties(); properties.put("mail.imap.ssl.enable", "true"); imapSession = Session.getInstance(properties, null); imapSession.setDebug(false); imapStore = imapSession.getStore("imap"); imapStore.connect("imap.gmail.com", USERNAME, "password"); 

क्लासिक केस में USERNAME = "nickname" के साथ, और व्यापार खाते के मामले में USERNAME = "employee@business.com"

क्लासिक केस में, और अगर आप एक पुराने जावामेल निर्भरता का उपयोग करते हैं, तो यहां खाते की सुरक्षा को कम करने के लिए मत भूलना: https://www.google.com/settings/security/lesssecureapps

दोनों मामलों में GMail सेटिंग्स => अग्रेषण POP / IMAP में चेक करें यदि खाते के लिए IMAP सक्षम है

आशा करता हूँ की ये काम करेगा!

आगे जाने के लिए :

जावा के साथ SSL का उपयोग करने के लिए आपको जेएसएसई स्थापित करना होगा

 URLName server = new URLName("imaps://<gmail-user-name>:<gmail-pass>@imap.gmail.com/INBOX");