А АWednesday, 20 May 2015

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


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

Коллега на работе переехал своей электронной почтой под сервер 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 эта библиотека входит в дистрибутив и записывается в папку при инсталляции, так что ничего скачивать не надо. 

2.Однократно запустить 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

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


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


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

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

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


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

1 comment:

Anonymous said...

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

Post a Comment

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

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

Популярное