С Microsoft отключает базовую проверку подлинности в Exchange Online, я задался целью добавить поддержку Modern Authentication в наше приложение. Наше приложение отправляет основные оповещения по электронной почте. В настоящее время для этого мы используем базовую аутентификацию SMTP или открытый ретранслятор, но современная аутентификация была бы хорошим дополнением.
Чтобы полностью понять процесс, я хотел бы пройти весь процесс электронной почты вручную. У меня есть клиент разработки в Microsoft, в котором я зарегистрировал наше приложение. У меня нет проблем с получением токена Oauth с областью действия электронной почты. Я не могу пройти через связь с SMTP-сервером.
Поскольку связь должна быть зашифрована, я использую openssl (вместо telnet). Я подключаюсь к серверу с помощью этой команды:
openssl s_client -connect smtp.office365.com:587 -crlf -starttls smtp
Есть некоторые отзывы о согласовании SSL, а затем сервер отвечает:
250 СМТПУТФ8
В этот момент я считаю, что должен использовать команду EHLO. Однако после
ЭХЛО
Ответ просто (сервер меняется при каждой попытке)
' [AM4PR0101CA0056.eurprd01.prod.exchangelabs.com]
На данный момент я не уверен, что делать. Я считаю, что может быть необходимо вставить некоторый домен после команды ehlo (чтобы определить онлайн-арендатора Microsoft для подключения?). Однако, какой бы домен я ни вставлял, ответ всегда такой:
501 5.5.4 Неверное доменное имя [AM4PR0101CA0056.eurprd01.prod.exchangelabs.com]
Может ли кто-нибудь объяснить, как инициировать связь с клиентом Microsoft Exchange Online через OpenSSL? Что ставить после EHLO? Я вообще подключаюсь к правильному адресу? Я просто пытаюсь добраться до точки, где я могу выполнить команду AUTH XOAUTH2 для входа в свой клиент.
Я смог выполнить весь процесс на smtp-сервере Gmail (smtp.gmail.com). Там не имеет значения, что вы добавите после команды ehlo, после ее ввода вас поприветствуют, и вы сможете перейти к входу в систему с помощью различных команд AUTH.