Комментарии 17
Доступ к Exchange также можно получить по протоколу simpleMapi. Пример работы: skahin.blogspot.com/2010/11/exchange-mapi.html
+1
Можно, а также и через EWS или прямо Rop RPC и еще целой кучей способов, но там есть свои ограничения. А здесь мы имеем доступ на самом низком уровне, а следовательно можем сделать все, что угодно, без каких-либо ограничений, это самый низкоуровневый raw API, который использует сам Exchange, т.е. все вызовы, в том числе и MAPI, в итоге превращаются в ESE вызовы.
+1
Я с Exchange работал через CDOEX — тоже не очень весело.
Хорошо теперь хоть появилось EWS Managed API, но к сожалению оно не работает с 2003 Exchange.
Хорошо теперь хоть появилось EWS Managed API, но к сожалению оно не работает с 2003 Exchange.
0
Ответил выше, EWS и т.п. это высокоуровневые функции, они предназначены разработчикам, а ESE это как CREATE TABLE… и т.п. для MS SQL в сравнении, например, с LINQ to SQL.
Т.е. это родное API, если есть, что-то что нельзя сделать, например, через EWS, то через ESE можно сделать, все, что может сделать сам Exchange.
Т.е. это родное API, если есть, что-то что нельзя сделать, например, через EWS, то через ESE можно сделать, все, что может сделать сам Exchange.
+1
Я так понял, что для ESE нужно иметь физический доступ к файлу?
А как узнать через ESE в каком именно файле нужная мне база или он один на каждого отдельного пользователя?
А как узнать через ESE в каком именно файле нужная мне база или он один на каждого отдельного пользователя?
0
>Я так понял, что для ESE нужно иметь физический доступ к файлу?
Да
>А как узнать через ESE в каком именно файле нужная мне база или он один на каждого отдельного пользователя?
Он один на всю Exchange базу, т.е. кол-во файлов = кол-во почтовых баз.
Посмотреть можно в Exchange Management Console, там же можно узнать к какой базе привязан пользователь.
Да
>А как узнать через ESE в каком именно файле нужная мне база или он один на каждого отдельного пользователя?
Он один на всю Exchange базу, т.е. кол-во файлов = кол-во почтовых баз.
Посмотреть можно в Exchange Management Console, там же можно узнать к какой базе привязан пользователь.
0
Тоже недавно приходилось работать с exchange. Использовал Outlook Redemption. Так как там COM библиотека, все это отлично обвязалось сверху c#.
0
Exchange 2007 тоже доступен только в 64 битой версии(ну за исключением 32битной беты), размер страницы можно программно вычитывать из хидера edb файла(это 1я страница в файле) — это DWORD по смещению 0xEC.
Ну и MS начали открывать некоторые секреты внутреннего устройства базы данных.
Ну и MS начали открывать некоторые секреты внутреннего устройства базы данных.
+2
> размер страницы можно программно вычитывать из хидера edb файла(это 1я страница в файле) — это DWORD по смещению 0xEC.
Не знал, спасибо.
>Ну и MS начали открывать некоторые секреты внутреннего устройства базы данных.
Да, читал и кое-что уже реализовал по этой доке. Но там больше про клиентскую часть EcDoRpcExt2 и подобные, т.е. это все же на один уровень выше, и будем полезным, например, если захочется написать свой MAPI. В документации все для этого готово, все форматы Rop'ов (бинарный формат используемый Exchange'ем для общения с клиентами через Rpc, например, MFCMapi, Outlook, etc.)
Не знал, спасибо.
>Ну и MS начали открывать некоторые секреты внутреннего устройства базы данных.
Да, читал и кое-что уже реализовал по этой доке. Но там больше про клиентскую часть EcDoRpcExt2 и подобные, т.е. это все же на один уровень выше, и будем полезным, например, если захочется написать свой MAPI. В документации все для этого готово, все форматы Rop'ов (бинарный формат используемый Exchange'ем для общения с клиентами через Rpc, например, MFCMapi, Outlook, etc.)
0
Да они давно открыли. Я с Ontrack PowerControl доставал мыло из «убитых» баз еще с Exchange 2003 и даже с 2000. Так что не все так плохо ;)
0
Не совсем так, Ontrack PowerControls не использует протоколы приведенные nobodyzzz, т.к. они, повторюсь клиентские. Ontrack работает с демонтированной базой, а следовательно никакие протоколы вам не помогут.
Они так же используют ESE, т.к. это единственный способ доступа к внутреннему содержимому базы, но примеров реализации вы не найдете, т.к. это закрытый продукт.
Они так же используют ESE, т.к. это единственный способ доступа к внутреннему содержимому базы, но примеров реализации вы не найдете, т.к. это закрытый продукт.
0
Exchange — это чуть ли не самый офигенный продукт IT от Microsoft, по моему мнению, конкурентов у него нет. Но у меня есть вопросы.
Во-первых, ну неужели вы реально получаете кайф от такого программирования? Почему не «open source»?
Во-вторых, почему возникает потребность доступа к Exchange? Неужели экосистема от Microsoft вокруг Exchange неполна и возникает нужда в чём-то ещё?
Во-первых, ну неужели вы реально получаете кайф от такого программирования? Почему не «open source»?
Во-вторых, почему возникает потребность доступа к Exchange? Неужели экосистема от Microsoft вокруг Exchange неполна и возникает нужда в чём-то ещё?
+1
>Exchange — это чуть ли не самый офигенный продукт IT от Microsoft, по моему мнению, конкурентов у него нет.
Вы правы. Я думаю также.
>Во-первых, ну неужели вы реально получаете кайф от такого программирования?
Да, но не всегда ;). Бывают моменты, когда хочется все послать т.к. помощи нет, информации нет, и т.д. Но как показала практика, если решение есть, то оно обязательно находится, если есть время плюс громадное желание. Во всем можно разобраться, вопрос только во времени и нашем желании его так потратить.
Плюс подобные задачи имеют уникальную способность «вставлять» на место мозги по разным вопросам, что потом возвращается с троицей из мест казалось бы совершенно с этим не связанных.
>Почему не «open source»
Не знаю, как-то вот не сложилось. Круг знакомых тоже не способствует, все в весьма «закрытых» конторах. Вот так и выходит, что тема для меня совершенно неизвестная. )
>Во-вторых, почему возникает потребность доступа к Exchange? Неужели экосистема от Microsoft вокруг Exchange неполна и возникает нужда в чём-то ещё?
Полна, пока вам не захочется сделать что-нибудь выходящее за рамки ее ответственности. Например, антивирусы, встроенные в сами механизмы по работе с письмами, системы миграции, резервного копирования или системы аудита, способные узнать, что один из 50000 пользователей поменяли буковку в поле subject одного из миллионов хранящихся на сервере писем..., да много разного можно придумать.
Вы правы. Я думаю также.
>Во-первых, ну неужели вы реально получаете кайф от такого программирования?
Да, но не всегда ;). Бывают моменты, когда хочется все послать т.к. помощи нет, информации нет, и т.д. Но как показала практика, если решение есть, то оно обязательно находится, если есть время плюс громадное желание. Во всем можно разобраться, вопрос только во времени и нашем желании его так потратить.
Плюс подобные задачи имеют уникальную способность «вставлять» на место мозги по разным вопросам, что потом возвращается с троицей из мест казалось бы совершенно с этим не связанных.
>Почему не «open source»
Не знаю, как-то вот не сложилось. Круг знакомых тоже не способствует, все в весьма «закрытых» конторах. Вот так и выходит, что тема для меня совершенно неизвестная. )
>Во-вторых, почему возникает потребность доступа к Exchange? Неужели экосистема от Microsoft вокруг Exchange неполна и возникает нужда в чём-то ещё?
Полна, пока вам не захочется сделать что-нибудь выходящее за рамки ее ответственности. Например, антивирусы, встроенные в сами механизмы по работе с письмами, системы миграции, резервного копирования или системы аудита, способные узнать, что один из 50000 пользователей поменяли буковку в поле subject одного из миллионов хранящихся на сервере писем..., да много разного можно придумать.
0
> Неужели экосистема от Microsoft вокруг Exchange неполна и возникает нужда в чём-то ещё?
ну например, если у вас есть копия файлов базы данных одного сервера, то нет способа взять и использовать их на другом
ну например, если у вас есть копия файлов базы данных одного сервера, то нет способа взять и использовать их на другом
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Пишем viewer почтовой базы MS Exchange (часть 1)