दिलचस्प पोस्ट
गुणा 2 संख्या और उसके बाद राशि हाइबर्नेनेट के साथ आलसी-इनीट समस्या को हाइबरनेट करना सुनिश्चित करें। Enable_lazy_load_no_trans प्रतिबिंब जेनेरिक फ़ील्ड मान प्राप्त करें नेस्टेड एनजी-दोहराना पायथन की तुलना में नमुपी के गणित कार्य तेजी से हैं? लॉन्च असफल बाइनरी नहीं मिला ई के लिए ग्रहण सी में नेविगेशन स्टैक से देखें नियंत्रकों को निकाल रहा है शीर्ष लेख और पाद लेख बटन के साथ एंड्रॉइड सूची दृश्य Mod_rewrite की छिपी हुई विशेषताओं सीएसएस ट्यूरिंग पूर्ण है? LINQ का उपयोग करके पिवट डेटा mysqli देने "सिंक के बाहर आदेश" त्रुटि – क्यों? DOM ईवेंट प्रतिनिधिमंडल क्या है? पीएचपी रीजॉक्सपी पैटर्न में अतिरिक्त बैकस्लैश आवश्यक है Google नक्शे को मार्क्स के साथ लाइट / एलएजी से एजेक्स की सफलता से डेटा वापस लाया गया

जीएमएम से 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); } 

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

वेब के समाधान से एकत्रित समाधान "जीएमएम से 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");