Ваш Java-код должен отправлять почту, используя Microsoft Exchange Server. Или вам нужно прочитать электронную почту с сервера Microsoft Exchange с помощью Java. Или, может быть, это календари, которые вас интересуют, и вы пытаетесь получить оттуда информацию или пытаетесь синхронизировать различные календари? Как вы работаете с Microsoft Exchange Calendar API на Java?
Классическим способом интеграции с любым видом программного обеспечения является использование его API. Так, если вы пытаетесь интегрироваться с Microsoft Exchange, вы, вероятно, пытаетесь найти, как использовать API Exchange.
API меняются со временем - немного истории API Microsoft Exchange
Раньше самым распространенным способом интеграции Java с Exchange были веб-службы Exchange (EWS). EWS SDK для Java был запущен как часть Microsoft Exchange 2007. Это API на основе SOAP, но дело в том, что в июле 2018 года Microsoft объявила, что больше не будет выпускать обновления для него. Хотя EWS SDK для Java еще некоторое время будет получать обновления безопасности, в настоящее время нет смысла начинать проект с его использованием.
Еще одно важное изменение заключается в том, что с 13 октября 2020 года поддержка базовой аутентификации в веб-службах Exchange (EWS) будет полностью прекращена. Microsoft хочет, чтобы все перешли на OAuth. OAuth на самом деле является гораздо лучшим вариантом и даже одобрен в качестве международного стандарта (ISO/IEC). Если вы не слышали о OAuth, вы можете проверить здесь а затем углубиться здесь. И хотя это шаг к лучшему, факт в том, что когда поддержка базовой аутентификации закончится, приложения больше не смогут использовать базовую аутентификацию при подключении к Exchange с помощью EWS.
И что теперь?
Если вы хотите подключиться к Microsoft Exchange через API из Java и хотите следовать рекомендациям Microsoft, вам следует использовать Microsoft Graph.
Microsoft Graph был создан в 2015 году на базе Office 365 и делегирует вызовы различным облачным службам Office 365 через одну конечную точку. https://graph.microsoft.com/. Со временем она эволюционировала и теперь включает в себя доступ к другим продуктам Microsoft, таким как Exchange.

Внутри Microsoft Graph можно использовать Microsoft Graph API или подключение данных Microsoft Graph. В любом случае, убедитесь, что вы сначала проверили Условия использования. Компания Microsoft довольно специфична в отношении того, что можно и чего нельзя делать с их API, так что посмотрите.
Для большинства случаев подходит Microsoft Graph API. Ниже мы рассмотрим его немного подробнее.
Вам следует рассмотреть возможность подключения данных Microsoft Graph, если вам нужно работать с большими данными или если вам необходимо детальное согласие (клиент получит возможность просматривать конкретные поля и любые исключения, что невозможно при использовании обычного API). Но есть одно важное правило, о котором вам следует знать, если вы рассматриваете Microsoft Graph data connect: он будет отправлять данные только с арендатора Office 365 клиента на связанный с ним арендатор Azure.
Вернемся к обычному API, так как это наиболее распространенный вариант. В настоящее время существует 2 версии REST API Microsoft Graph — бета-версия и версия 1.0. Вы можете ознакомиться с бета-версияно, конечно, для любого серьезного развития следует придерживаться производственной версии 1.0. Для этой версии вы можете проверить документация и Java SDK. Да, если вы только начинаете работать с этим API, вам придется многому учиться!...
Чтобы использовать API, вам сначала нужно зарегистрировать свое приложение. Я знаю, что это не самый интересный первый шаг, но если вы будете использовать API напрямую, вам понадобится идентификатор приложения, чтобы представлять ваше приложение в вызовах API. Для этого вам понадобится учетная запись на работе/в школе или учетная запись Microsoft, а затем вы можете выбрать способ регистрации:
• Портал регистрации приложений Microsoft
• портал управления Azure Active Directory (рекомендуется для приложений корпоративного класса)
Если ваше приложение является конфиденциальным клиентом (услугой), вы должны создать новый пароль приложения для его защиты. После регистрации для вашего приложения будет создан идентификатор приложения, который будет отображаться на странице свойств вашего нового приложения.
Наконец, обратите внимание, что Microsoft Graph также постоянно меняется. Чтобы получить представление об изменениях с течением времени (с декабря 2015 года), вы можете взглянуть на журнал изменений. Если вы хотите работать с ним, мы рекомендуем всегда проверять, какая у вас текущая производственная версия API.
Есть способ получше?
Если тебе не очень нравится:
• Работа с Microsoft в первую очередь
• Необходимость тратить огромное количество времени на изучение документации
• Необходимость мириться с ошибками, вызванными будущими изменениями в Microsoft Graph API.
Вам может быть интересно, есть ли какая-нибудь альтернатива. Да, есть способ получше!
Вместо того, чтобы напрямую использовать API, вы можете поместить тонкий слой между вами и API. Мы называем этот слой Connect Bridge. Этот слой был создан достаточно тонким, чтобы иметь все быстро и эффективно, но достаточно толстым, чтобы вы никогда не прикасались к Microsoft Exchange или даже к Microsoft Graph API.

Connect Bridge является платным инструментом, но вы можете проверить Connect Bridge бесплатная пробная версия чтобы вы могли посмотреть, работает ли она для вас. Прелесть этого инструмента в том, что он обеспечивает прямую и обратную совместимость.
Вы создаете свой Java-код, интегрируя его с Connect Bridge, и затем ваши пользователи могут обновить Exchange, Microsoft может выпустить новые версии API... и вам не придется об этом беспокоиться. Неважно, что будет после Microsoft Graph API v1.0. Ваше решение будет по-прежнему работать! Вы пишете код один раз, и затем вам больше не нужно беспокоиться о всех этих сложностях.
Нет никаких ограничений на среду, в которой вы можете использовать этот инструмент. Вы можете запустить его на
• Платформа SaaS, созданная на базе Azure и управляемая программным обеспечением Connecting.
• На локальных серверах, на ваших собственных облачных серверах или виртуальных машинах (самостоятельное размещение)
Как работает 1ТП16Т? Что он делает за кулисами? В основном он транслирует стандартные SQL-запросы в вызовы API. На вашем коде это выглядит так, как будто вы получаете доступ к реляционной базе данных с помощью JDBC (ODBC и веб-службы также поддерживаются). Вы пишете заявления SELECT, INSERT, UPDATE и DELETE. Вы используете то, что выглядит как хранимые процедуры. Но это все лишь уровень абстракции.
Вы не обращаетесь к базе данных Microsoft Exchange (и поверьте мне, вы не хотите этого делать!). Но выглядит это так, как будто так и есть. Connect Bridge поставляется с инструментом запросов, где вы можете проверить свои (фальшивые) запросы, увидеть (фальшивые) таблицы с их (фальшивыми) столбцами или даже найти удобную (фальшивую) хранимую процедуру. Как я уже сказал, ощущения точно такие же, как при использовании базы данных SQL, но это всего лишь абстракция.
После того, как вы выполнили все необходимые тесты, вам остается только добавить соединение и запросы в свой код, как если бы вы использовали JDBC для подключения к базе данных... и все! Теперь у вас есть рабочее решение, которое не требует никакого обслуживания. Все усилия по обслуживанию ложатся на Connect Bridge. Именно поэтому этот инструмент является платным. Я считаю, что это очень умная идея... которая стоит каждого потраченного цента!
Также приятно отметить, что этот инструмент работает с безопасностью и аутентификацией, что может занять значительное количество времени, если вы развиваетесь с нуля.
Заключение
Мы видели, как можно легко получить доступ к данным Microsoft Exchange на Java с помощью интеграционной платформы Connect Bridge.

И есть еще хорошие новости: это также возможно с Microsoft Dynamics и Microsoft SharePoint! На самом деле, вы можете подключиться к любому программному обеспечению Microsoft, к Salesforce, и ко многим другим. Достаточно лишь получить Connect Bridge, который является базовой интеграционной платформой и подобрать подходящий коннектор.
Если вы хотите знать, какие коннекторы в настоящее время доступны на Connect Bridge, то вам следует обратить внимание на следующее https://www.connecting-software.com/connectors/

Если вы хотите узнать, какие разъемы являются новейшими в этой обширной коллекции, посмотрите Connect Bridges. 1ТП21Т Финансы и операции и Dynamics 365 Business Central Соединители.
Также важно знать, что существуют готовые продукты, которые используют Connect Bridge и которые являются полностью готовыми решениями. Например, CB Exchange Server Sync позволяет выбрать пользовательскую одностороннюю или двустороннюю синхронизацию календарей, папок электронной почты, заданий, контактов, общих папок без кодирования вообще.
Надеемся, что эта статья была вам полезна! Вот еще несколько постов в нашем блоге, в которых мы обсуждаем другие возможности интеграции:
Об авторе

По адресу Ана Нето, технический консультант в Connecting Software.
Я работаю инженером-программистом с 1997 года, а в последнее время полюбил писать и выступать публично". У вас есть вопросы или комментарии по поводу этой статьи? Я буду рад получить ваш отзыв, оставьте комментарий ниже!"
