А АWednesday, 20 May 2015

The Bat! и MS Exchange - дружба или нет?


thebat
Всем привет.
Недавняя история. Был повод размяться...

Коллега на работе переехал своей электронной почтой под сервер MS Ecxhange. Разумеется по умолчанию ему дали клиента MS Outlook 2010. А он так любил пользоваться The Bat!). Поскольку на его работе никто The Bat! не юзал он попросил меня настроить его мыша на новый сервер.

А что мы теперь за протокол используем? Конечно же MAPI.

Пару слов о MAPI (Messaging API). Это интерфейс и это набор структур и функций, которые необходимы для доступа к почтовому транспорту и хранилищу данных без конкретизации, какой именно почтовый клиент используется.  Почтовые клиенты реализуют стандарт MAPI в виде dll (обычно это mapi.dll или mapi32.dll). Тогда в любом приложении разработчик может предусмотреть функцию отправки текущего файла по почте с использованием Вашего почтового клиента по умолчанию, не вдаваясь в детали ваших интернет-настроек. На текущий момент существуют два стандарта: Simple MAPI (12 функций) и Extended MAPI, или MAPI 1.0 (более 100 функций). 

Поддерживает ли The Bat! MAPI?
На официальном сайте The Bat! сказано что Да.
На неофициальном ответ: и да, и нет.

Начал разбираться.
The Bat!, начиная с версии 1.47, поддерживает запросы по Simple MAPI, хотя MS Outlook поддерживает оба интерфейса.  Насчет необходимости: если бы интерфейс Extented MAPI был реализован в The Bat!, тогда автоматически отпал бы вопрос о TheBat API, о котором иногда просят разработчиков. Любые плагины стали бы возможны. Теперь во что это выливается практически. Существование (поддержка) интерфейса MAPI обеспечивает возможность не почтовым программам реализовывать то самое меню "File -> Send". Если есть в системе почтовый клиент, который установлен как MAPI-клиент, значит файл отправиться, нет — значит нет. Большинство программ, например: FreeHand, Mathematica, WinEdt, WinZip, etc. поддерживают Simple MAPI, поэтому они нормально вызывают The Bat!. Так как приложения Microsoft Office изначально ориентированы на внутреннюю интеграцию, то и в качестве почтового клиента они ожидают MS Outlook. В меню "File" приложений Офиса может присутствовать команда "Send"(отослать текущий документ), это зависит от настроек при установке Microsoft Office. Если в этом меню есть опция "Mail recipient (as attachment)", то в случае ее выбора будет вызван почтовый клиент по умолчанию. Так что TheBat! сформирует письмо с вложением. Все остальные опции этого меню будут предназначены именно для MS Outlook и другой почтовый клиент не будет вызван. 

Для того чтобы использовать в The Bat! MAPI DLL советуют сделать следующее.


Для того, чтобы установить The Bat! в качестве обработчика MAPI-запросов, нужно выполнить последовательность действий.  

По шагам это выглядит так: 
1.Надо скачать TBMapi.dll с сайта The Bat! и переписать библиотеку в ту папку, где живет The Bat!.  Начиная с версии 1.47 эта библиотека входит в дистрибутив и записывается в папку при инсталляции, так что ничего скачивать не надо. 

mapi2.Однократно запустить The Bat! с ключом /InstallMAPI либо в диалоговом окне настроек программы на закладке "Программы" (пункт меню "Свойства/Настройка") выполнить действие "Установить The Bat! как обработчик SimpleMAPI". После этого файл tbmapi.dll из папки The Bat! можно удалить: он уже скопировался в c:\windows\system\mapi32.dll, заменив стандартную библиотеку Microsoft. Кстати: я так понимаю, что для 16-битных программ MAPI как не работало, так и сейчас работать не будет. Потому как The Bat!, похоже, вовсе не обновляет mapi.dll, а только mapi32.dll.

3.Проверить использование этой новой функции: открываете какое угодно приложение, поддерживающее MAPI (кроме Офиса), например, одну из вышеназванных программ, и нажимаете "File-->Send". Если все работает, - автоматически стартует The Bat!, и откроет Вам редактор нового письма с уже приаттаченным файлом. 

У коллеги получился такой вот стенд - Windows7, MS Outlook 2010 и The Bat! 4.2.9.1 portable.

Сделал вышеназванное по пунктам. Не работает!((
Получил вот такую вот ошибку
FETCH - Неудачное подсоединение к серверу. Ошибка создания профиля "%s", ProfAdmin.CreateProfile C:\PROGRA~1\MICROS~2\Office14\OLMAPI32.DLL HResult=80070057

Копаем дальше.
Вот здесь парень предложил решение через создание нового почтового профиля.

mapi3

Создать в апплете панели управления "Учетные записи пользователей/Почта" новую конфигурацию почты специально для TheBat!, создать там еще один почтовый профиль под Exchange (с теми же настройками что и для Outlook), и подсунуть этот профиль The Bat!.

mapi4

Создаем. Проверяем. Не работает!

Все заработало только при запущенном клиенте MS Outlook.)
А без Outlook The Bat! радостно рапортует о проделанной работе в своем журнале, но тем не менее на поверку никаких отправлений не делает.(
Печалька.

Скорее всего его The Bat! будет работать только по протоколам POP3 и SMTP если их использование разрешит администратор почтовика Ecxhange. Возможно у нас не получилось из-за портабельной версии имеющегося The Bat!.

mapi2

Ну что же, отрицательный результат - тоже результат.
Надеюсь что у вас получиться!

1 comment:

blank
Anonymous said...

На версии TheBat! 8.8.9 и Outlook 2016 под Windows 10 (все х64) получилось работать под MAPI, даже с закрытым Outlook, если в настройках профиля (см. раздел статьи "Копаем дальше") снять галочку о кэшировании.

Post a Comment

А что вы думаете по этому поводу?

Версия на печать

Популярное