2011-12-30 12 views
5

मैं मेल :: IMAPClient का उपयोग कर हमारे एक्सचेंज सर्वर से कनेक्ट करने का प्रयास कर रहा हूं लेकिन काम कर रहे एक स्क्रिप्ट में समस्याएं आ रही हैं जब मैंने इसे एक temp dev डेस्कटॉप से ​​स्थानांतरित कर दिया है, जो एक नए देव एनवी चलने वाले केंद्रों में उबंटू चला रहा है। उस समय के दौरान मुझे पता चला कि एक्सचेंज सर्वर को अपग्रेड किया गया था, मुझे लगता है कि 2010 में क्या लगता है। क्या एक्सचेंज में एक सेटिंग है जो कमांड को सीआरएलएफ की आवश्यकता के बजाय केवल लाइनफीड्स के साथ संसाधित करने की अनुमति देगी या यह एक स्थानीय सिस्टम (स्क्रिप्ट समस्या चलाना) हो सकता है?लिनक्स से आईएमएपी कनेक्शन कैरिज रिटर्न लाइन फीड इश्यू?

यह थोड़ी देर के बाद बाहर निकलता है।

$openssl s_client -connect myhost.mydomain.net:993 
... 
* OK The Microsoft Exchange IMAP4 service is ready - 'myhost' 
? login username password 
* BYE Connection is closed. 13 
read:errno=0 

कमांड सही तरीके से कार्य करेंगे।

$openssl s_client -crlf -connect myhost.mydomain.net:993 
... 
* OK The Microsoft Exchange IMAP4 service is ready - 'myhost' 
? login username password 
? OK LOGIN completed. 
? select inbox 
* 4 EXISTS 
* 0 RECENT 
* FLAGS (\Seen \Answered \Flagged \Deleted \Draft $MDNSent) 
* OK [PERMANENTFLAGS (\Seen \Answered \Flagged \Deleted \Draft $MDNSent)] Permanent  flags 
* OK [UNSEEN 3] Is the first unseen message 
* OK [UIDVALIDITY 169533] UIDVALIDITY value 
* OK [UIDNEXT 132] The next unique identifier value 
? OK [READ-WRITE] SELECT completed. 
1 logout 
* BYE Microsoft Exchange Server 2010 IMAP4 server signing off. 
1 OK LOGOUT completed. 
read:errno=0 

[समाधान:]
सर्वर openssl उपयोग करने के लिए एक मैनुअल SSL कनेक्शन बनाने के लिए कोशिश की।
मुझे -crlf विकल्प शामिल करना था ताकि विनिमय आईएमएपी कमांड को समाप्त कर सके।

उत्तर

2

IMAP प्रोटोकॉल को क्लाइंट और सर्वर का उपयोग करने के लिए \ r \ n की आवश्यकता है। एक्सचेंज सही तरीके से व्यवहार करता है (जो कि आम नहीं है)।

+0

दिलचस्प अगर मैंने आईएमएपी की आवश्यकता होती है तो मैंने आरएफसी नहीं पढ़ा। जानकारी के लिए धन्यवाद। – LF4

7

यह आरएफसी 3501 के section 2.2 में है, लेकिन यह अवलोकन का हिस्सा है।

क्लाइंट और सर्वर द्वारा प्रेषित सभी इंटरैक्शन लाइनों के रूप में हैं, यानी, एक स्ट्रिंग जो एक सीआरएलएफ के साथ समाप्त होती है।

ध्यान दें कि खंड में कोई "जरूरी" नहीं है।

डोलकोट और अन्य आईएमएपी सर्वर ईओएल का गठन करने के संदर्भ में जो स्वीकार करते हैं, उसके बारे में अधिक उदार हैं।

"सुधार" सापेक्ष है। यदि कोई जरूरी नहीं है या क्लॉल्ड होना चाहिए तो आम तौर पर स्वीकार किया जाता है कि "जो भी आप स्वीकार करते हैं उसमें उदार हो और जो भी आप भेजते हैं उसमें सख्त हो" आरएफसी को लागू करते समय सबसे अच्छा तरीका है।

संबंधित मुद्दे