Как стать автором
Обновить

Комментарии 17

Можно, а также и через EWS или прямо Rop RPC и еще целой кучей способов, но там есть свои ограничения. А здесь мы имеем доступ на самом низком уровне, а следовательно можем сделать все, что угодно, без каких-либо ограничений, это самый низкоуровневый raw API, который использует сам Exchange, т.е. все вызовы, в том числе и MAPI, в итоге превращаются в ESE вызовы.
Я с Exchange работал через CDOEX — тоже не очень весело.
Хорошо теперь хоть появилось EWS Managed API, но к сожалению оно не работает с 2003 Exchange.
Ответил выше, EWS и т.п. это высокоуровневые функции, они предназначены разработчикам, а ESE это как CREATE TABLE… и т.п. для MS SQL в сравнении, например, с LINQ to SQL.
Т.е. это родное API, если есть, что-то что нельзя сделать, например, через EWS, то через ESE можно сделать, все, что может сделать сам Exchange.
Я так понял, что для ESE нужно иметь физический доступ к файлу?
А как узнать через ESE в каком именно файле нужная мне база или он один на каждого отдельного пользователя?
>Я так понял, что для ESE нужно иметь физический доступ к файлу?

Да

>А как узнать через ESE в каком именно файле нужная мне база или он один на каждого отдельного пользователя?

Он один на всю Exchange базу, т.е. кол-во файлов = кол-во почтовых баз.
Посмотреть можно в Exchange Management Console, там же можно узнать к какой базе привязан пользователь.
Тоже недавно приходилось работать с exchange. Использовал Outlook Redemption. Так как там COM библиотека, все это отлично обвязалось сверху c#.
Exchange 2007 тоже доступен только в 64 битой версии(ну за исключением 32битной беты), размер страницы можно программно вычитывать из хидера edb файла(это 1я страница в файле) — это DWORD по смещению 0xEC.
Ну и MS начали открывать некоторые секреты внутреннего устройства базы данных.
> размер страницы можно программно вычитывать из хидера edb файла(это 1я страница в файле) — это DWORD по смещению 0xEC.

Не знал, спасибо.

>Ну и MS начали открывать некоторые секреты внутреннего устройства базы данных.

Да, читал и кое-что уже реализовал по этой доке. Но там больше про клиентскую часть EcDoRpcExt2 и подобные, т.е. это все же на один уровень выше, и будем полезным, например, если захочется написать свой MAPI. В документации все для этого готово, все форматы Rop'ов (бинарный формат используемый Exchange'ем для общения с клиентами через Rpc, например, MFCMapi, Outlook, etc.)
Да они давно открыли. Я с Ontrack PowerControl доставал мыло из «убитых» баз еще с Exchange 2003 и даже с 2000. Так что не все так плохо ;)
Не совсем так, Ontrack PowerControls не использует протоколы приведенные nobodyzzz, т.к. они, повторюсь клиентские. Ontrack работает с демонтированной базой, а следовательно никакие протоколы вам не помогут.
Они так же используют ESE, т.к. это единственный способ доступа к внутреннему содержимому базы, но примеров реализации вы не найдете, т.к. это закрытый продукт.
Ontrack PowerControls вырос из Kroll PowerControls, который использует собственную реализацию движка для работы с edb файлами(ну по крайней мере использовал когда я его последний раз видел) и не зависит от ESE
Если это так, то снимаю шляпу перед авторами.
Exchange — это чуть ли не самый офигенный продукт IT от Microsoft, по моему мнению, конкурентов у него нет. Но у меня есть вопросы.
Во-первых, ну неужели вы реально получаете кайф от такого программирования? Почему не «open source»?
Во-вторых, почему возникает потребность доступа к Exchange? Неужели экосистема от Microsoft вокруг Exchange неполна и возникает нужда в чём-то ещё?
>Exchange — это чуть ли не самый офигенный продукт IT от Microsoft, по моему мнению, конкурентов у него нет.

Вы правы. Я думаю также.

>Во-первых, ну неужели вы реально получаете кайф от такого программирования?

Да, но не всегда ;). Бывают моменты, когда хочется все послать т.к. помощи нет, информации нет, и т.д. Но как показала практика, если решение есть, то оно обязательно находится, если есть время плюс громадное желание. Во всем можно разобраться, вопрос только во времени и нашем желании его так потратить.
Плюс подобные задачи имеют уникальную способность «вставлять» на место мозги по разным вопросам, что потом возвращается с троицей из мест казалось бы совершенно с этим не связанных.

>Почему не «open source»

Не знаю, как-то вот не сложилось. Круг знакомых тоже не способствует, все в весьма «закрытых» конторах. Вот так и выходит, что тема для меня совершенно неизвестная. )

>Во-вторых, почему возникает потребность доступа к Exchange? Неужели экосистема от Microsoft вокруг Exchange неполна и возникает нужда в чём-то ещё?

Полна, пока вам не захочется сделать что-нибудь выходящее за рамки ее ответственности. Например, антивирусы, встроенные в сами механизмы по работе с письмами, системы миграции, резервного копирования или системы аудита, способные узнать, что один из 50000 пользователей поменяли буковку в поле subject одного из миллионов хранящихся на сервере писем..., да много разного можно придумать.
> Неужели экосистема от Microsoft вокруг Exchange неполна и возникает нужда в чём-то ещё?
ну например, если у вас есть копия файлов базы данных одного сервера, то нет способа взять и использовать их на другом
Опубликовал завершение, не вместившееся в данный пост. Посмотреть можно здесь.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории