كيفية معرفة الاسم المميز لمخزن المعلومات لتغذية IExchangeManageStore::GetMailboxTable؟

StackOverflow https://stackoverflow.com/questions/80831

سؤال

هناك مقالة قاعدة معارف مايكروسوفت باستخدام نموذج التعليمات البرمجية لفتح كافة علب البريد في مخزن معلومات محدد.إنه يعمل حتى الآن (يتطلب القليل من النسخ واللصق على المترجمين الأحدث من VC++ 6.0).

عند نقطة واحدة فإنه يستدعي IExchangeManageStore::GetMailboxTable بالاسم المميز لمخزن المعلومات.بالنسبة لصورة Exchange 2007 Trial Virtual Server، يجب أن تبدو كما يلي:

"/o=Litware Inc/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Configuration/cn=servers/cn=DC1".

استخدام OutlookSpy والنقر على IMSgStore وIExchangeManageStore يكشف عن السلسلة المطلوبة بجوار "Server DN:".

أريد تجنب إجبار المستخدم على وضع هذا في ملف التكوين.لذا، إذا كان بإمكان OutlookSpy القيام بذلك، فكيف يمكن لتطبيقي معرفة الاسم المميز لمخزن المعلومات الموجود عليه صندوق البريد المفتوح حاليًا؟

هل كانت مفيدة؟

المحلول

معتقدًا أنه يجب أن يكون هناك حل MAPI خالص، أعتقد أنني اكتشفت كيفية قيام OutlookSpy بذلك.


مقتطف الكود التالي، تم إدراجه بعد ذلك

printf("Created MAPI session\n");

في المثال من KB194627, ، سوف تظهر الاسم المميز للخادم.

LPPROFSECT lpProfSect;
hr = lpSess->OpenProfileSection((LPMAPIUID)pbGlobalProfileSectionGuid, NULL, 0, &lpProfSect);
if(SUCCEEDED(hr))
{
    LPSPropValue lpPropValue;
    hr = HrGetOneProp(lpProfSect, PR_PROFILE_HOME_SERVER_DN, &lpPropValue);
    if(SUCCEEDED(hr))
    {
        printf("Server DN: %s\n", lpPropValue->Value.lpszA);
        MAPIFreeBuffer(lpPropValue);
    }
    lpProfSect->Release();
}



تحديث:
هناك الوظيفة هرجيتسيرفيردن في ال إدك 5.5 كود المصدر, ، فهو يستخرج الاسم المميز للخادم من جلسة معينة PR_EMS_AB_HOME_MTA.سأحاول ذلك إذا تبين أن الطريقة الأخرى غير موثوقة.

نصائح أخرى

سيكون موجودًا في Active Directory، لذا يمكنك استخدام ADSI/LDAP لإلقاء نظرة على CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=مثال، العاصمة =com.استخدم ADExplorer الخاص بـ Sysinternals للبحث هناك للعثور على القيمة التي تبحث عنها.

سأقوم بتنزيل مصدر MFCMapi وأرى كيف يفعلون ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top