दिलचस्प पोस्ट
पारभासी फ्रेम / पैनल / घटक पर फिर से पेंट करें। मैं Node.js अनुप्रयोगों को डिबग कैसे कर सकता हूँ? सप्ताह की तारीख को कैसे परिवर्तित करें? एक्स-यूए-संगत IE = बढ़त पर सेट है, लेकिन यह संगतता मोड को अभी भी बंद नहीं करता है विंडोज पर गिट रेपो में निर्देशिकाओं की उपेक्षा करना हम किस प्रोग्राम को पता लगा सकते हैं कि कौन से आईओएस संस्करण डिवाइस चल रहा है? नया एक्सकोड प्रोजेक्ट में अलामॉफ़र स्थापित नहीं किया जा सकता "कोई ऐसा मॉड्यूल अलामॉफ़र नहीं" संबंधित वस्तु कब जारी होती है? एसक्यूएल क्वेरी – एक स्ट्रिंग में समापन परिणाम WPF डाटाबेसिंग: मैं "मूल" डेटा संदर्भ का उपयोग कैसे करूं? लोड डेटा INFILE आसानी से YYYYMMDD को YYYY-MM-DD में परिवर्तित करें? एकाधिक कॉलम पर SQLite प्राथमिक कुंजी एक्सटेंशन पेज में कोणीय परिवर्तन यूआरएल "असुरक्षित": मौजूदा PowerShell स्क्रिप्ट का स्थान निर्धारित करने का सबसे अच्छा तरीका क्या है? क्या बीश में एक "गोटो" कथन है?

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