2012-07-19 13 views
5

मैं एक एक्सचेंज 2003 सर्वर पर होस्ट किए गए किसी विशेष ईमेल खाते तक पहुंचने के लिए आवेदन कर रहा हूं और अपठित ईमेल में कुछ सामान प्राप्त करता हूं। मैं वास्तव में एमएपीआई कैसे काम करता है, इस बारे में बहुत कुछ नहीं जानता, इसलिए अगर मैं कुछ स्पष्ट याद कर चुका हूं तो मुझे आश्चर्य नहीं होगा! मैं (दुर्भाग्य से) सी # का उपयोग करके, मैंने उन मुद्दों के बारे में पढ़ा है जो इस कारण हो सकते हैं (और मैं प्रतिक्रियाओं से डर रहा हूं, लेकिन मेरा मालिक चाहता है कि ऐसा ऐसा हो ..)।किसी विशिष्ट Outlook/Exchange खाते से कैसे कनेक्ट करें?

मैं किसी विशिष्ट खाते से कनेक्ट करने के तरीके पर कोई अच्छी जानकारी खोजने के लिए संघर्ष कर रहा हूं! एप्लिकेशन किसी के लैपटॉप से ​​चलाया जाएगा (मान लें कि मेरा), इसलिए एक डिफ़ॉल्ट खाता होगा जो Outlook खोले जाने पर कनेक्ट होता है। तो:

  • क्या किसी मशीन से दूसरे खाते से कनेक्ट करना संभव है जहां उपयोगकर्ता के पास पहले से ही अपना खाता है और शायद Outlook खुला है?

  • यदि यह संभव है। मैं यह कैसे करु? Outlook इंटरऑप ऑब्जेक्ट्स को प्रारंभ करते समय एप्लिकेशन स्वचालित रूप से उपयोगकर्ता खाता प्राप्त करता है और वर्तमान उपयोगकर्ता को उस पर सेट करता है। मुझे आशा थी कि Logon() विधि इसे सॉर्ट करेगी लेकिन नहीं। यहां तक ​​कि Outlook.Application olApp = new Outlook.Application(); चल रहा है और वर्तमान उपयोगकर्ता को मानक खाते में सेट करता है।

मुझे आशा है कि मैं अर्थ निकालने हूँ (शायद नहीं), लेकिन टिप्पणी में और अधिक विस्तृत सवाल पूछने के लिए स्वतंत्र लग रहा है और मैं के रूप में जल्दी जवाब देगा संभव के रूप में। जैसे मैंने कहा, मैं एमएपीआई और एक्सचेंज के बारे में बहुत कम जानता हूं इसलिए मैं अपने प्रश्न को कैसे वाक्यांशित करने के लिए संघर्ष कर रहा हूं।

उत्तर

4

आप में एक विशिष्ट ई-मेल खाते से कनेक्ट करने के Exchange 2003 आप WebDAV, CDOEX, या ExOLEDB उपयोग करने की आवश्यकता चाहते हैं। यदि आप एक्सचेंज 2007+ का उपयोग कर रहे थे तो आप EWS का उपयोग कर सकते हैं।

आउटलुक इंटरॉप केवल (वर्तमान उपयोगकर्ता में लॉग इन) आप इंटरैक्टिव डेस्कटॉप खाते के रूप में कनेक्ट करने देगा। अन्य खातों से कनेक्ट करने का एकमात्र तरीका यह है कि यदि वर्तमान इंटरैक्टिव खाते में added the shared mailbox है।

+0

(उच्छ्वास) ... मैं इस मामले में हो सकता संदिग्ध लेकिन अन्य मार्ग के साथ आगे जाना पड़ा। सलाह के लिए धन्यवाद। लिंक उपयोगी शुरुआती बिंदु हैं। – Jammerz858

1

आप इसके लिए Redemption का भी उपयोग कर सकते हैं - अपने कोड को डोमेन उपयोगकर्ता के रूप में चलाएं जो प्रश्न में मेलबॉक्स तक पहुंच सकता है, RDOSession पर कॉल करें। उस उपयोगकर्ता के लिए LogonExchangeMailbox, फिर RDOSession का उपयोग कर अन्य उपयोगकर्ताओं के मेलबॉक्स खोलें। GetSharedMailbox/GetSharedDefaultFolder

चूंकि एक्सचेंज 2013 अब पुरानी शैली आरपीसी कनेक्शन (केवल आरपीसी-ओवर-एचटीटीपी या एमएपीआई-ओवर-एचटीटीपी) की अनुमति नहीं देता है, तो आप RDOSession.LogonHostedExchangeMailbox (एक्सचेंज 2013 और एक्सचेंज 2010 दोनों के लिए काम करता है) का उपयोग कर सकते हैं।

1

आप 2 खातों एक मशीन पर परिभाषित किया गया है, तो आप निम्न का उपयोग कर सकते हैं: example

Outlook.Application app = new Outlook.Application(); 
Outlook.NameSpace ns = app.GetNamespace("MAPI"); 

// optional 
//object missing = Type.Missing; 
//ns.Logon(missing, missing, true, false); 

// additional email address 
string recipientName = "[email protected]"; 

Outlook.Recipient recip = ns.CreateRecipient(recipientName); 
recip.Resolve(); 

if (recip.Resolved) 
{ 
Outlook.MAPIFolder inboxFolder = ns.GetSharedDefaultFolder(recip, Outlook.OlDefaultFolders.olFolderInbox); 
} 
संबंधित मुद्दे