Mail

Регистрация приложения Microsoft

Зарегистрируйте собственное приложение Microsoft для входа в Outlook.com и Microsoft 365: адрес перенаправления и права, которые нужны Mail.

Outlook.com и Microsoft 365 принимают для IMAP и SMTP только OAuth, поэтому mail входит через приложение Microsoft. Эта страница для того, кто регистрирует такое приложение: WireCat один раз для всех или вы для себя. Это занимает около получаса и ничего не стоит.

Когда приложение создано, его Application (client) ID попадает либо в сам mail (приложение WireCat), либо один раз в вашу конфигурацию:

mail config set --defaults microsoft_client_id <application-client-id>

Задать его можете только вы, в терминале: агенту через MCP в этом отказано, как и для настроек почтового сервера. Идентификатор публичный; у приложения для компьютера нет секрета.

Что понадобится

  • Аккаунт Microsoft, который может создавать приложения в тенанте Microsoft Entra. Рабочий или учебный аккаунт обычно может. У личного аккаунта Outlook.com собственного тенанта нет: сначала зарегистрируйте бесплатный аккаунт Azure, он его создаст (регистрация приложения, предварительные требования).
  • Личный почтовый ящик Outlook.com, чтобы в конце проверить приложение.

Шаги

  1. Откройте центр администрирования Microsoft Entra и войдите.

  2. Откройте App registrations (введите это в строку поиска вверху) и выберите New registration.

  3. Заполните форму:

    • Name: WireCat mail (пользователи видят его на странице согласия).
    • Supported account types: Any Entra ID Tenant + Personal Microsoft accounts. Без личных аккаунтов пользователи Outlook.com не смогут войти.
    • Redirect URI: оставьте пустым; его добавит шаг 6.
  4. Выберите Register. Откроется страница приложения Overview. Скопируйте Application (client) ID: это идентификатор, который нужен mail.

  5. Разрешите вход с компьютера: в разделе Manage выберите Authentication. В Advanced settings переключите Allow public client flows в Yes и выберите Save.

  6. Добавьте URI перенаправления. В разделе Manage выберите Authentication, затем Add a platform, затем Mobile and desktop applications. В Custom redirect URIs введите http://localhost/callback без порта и выберите Configure. mail входит через http://localhost:<port>/callback с новым портом каждый раз; Microsoft игнорирует порт только для адресов localhost и требует совпадения пути (правила URI перенаправления). Править манифест не нужно. Не добавляйте адрес на платформу Web: такое приложение ожидает клиентский секрет, и вход публичного клиента через неё не удаётся. Если адрес уже указан в Web, удалите его оттуда.

  7. Перечислите разрешения, чтобы страница согласия и администраторы видели их заранее. Вход всё равно запрашивает их по именам (области доступа), поэтому этот шаг рекомендуется, но не обязателен. Страница Microsoft не описывает шаги в портале для этих делегированных разрешений; обычно они находятся в Manage, API permissions, Add a permission, Microsoft Graph, Delegated permissions (если нет, то APIs my organization uses, Office 365 Exchange Online). Отметьте:

    • IMAP.AccessAsUser.All
    • SMTP.Send
    • offline_access

    Выберите Add permissions. Не предоставляйте для них согласие администратора: каждый человек разрешает их для своего почтового ящика при входе. Microsoft по умолчанию позволяет пользователям делать это для собственной почты (согласие пользователя).

  8. Проверьте перенаправление. Запишите идентификатор в конфигурацию, как описано выше, затем войдите дважды:

    mail config set --defaults microsoft_client_id <application-client-id>
    mail outlook-test session start --address <your-address>@outlook.com
    mail outlook-test session start

    Оба входа должны завершиться signed_in: true. Если страница Microsoft показывает ошибку с AADSTS50011 (URI перенаправления не совпадает), убедитесь, что адрес в Mobile and desktop applications точно равен http://localhost/callback.

  9. Для собственного приложения WireCat: отправьте Application (client) ID сопровождающим. Они впишут его в WIRECAT_MICROSOFT_CLIENT_ID в src/oauth.ts, и следующий релиз будет входить без какой-либо конфигурации.

Позже, для начала не нужно

  • Publisher verification (проверка издателя) добавляет на страницу согласия значок проверенного издателя, а некоторые организации разрешают только проверенные приложения. Это бесплатно, но нужны аккаунт Microsoft AI Cloud Partner Program и подтверждённый собственный домен (проверка издателя). Пока её нет, пользователь Microsoft 365, чей администратор ограничил согласие, просит администратора одобрить приложение или зарегистрировать собственное приложение организации по этим шагам и передать ему идентификатор.
  • Отправка из Microsoft 365 требует включённой для ящика функции «Authenticated SMTP». Параметры безопасности по умолчанию и организации, созданные после января 2020 года, её отключают; администратор включает её для каждого ящика (SMTP AUTH). Чтение работает в любом случае.

О чём просит вход

ScopeЧто mail с ним делает
https://outlook.office.com/IMAP.AccessAsUser.Allчитает и изменяет почту по IMAP
https://outlook.office.com/SMTP.Sendотправляет почту от имени аккаунта по SMTP
offline_accessтокен обновления, чтобы синхронизация по расписанию не требовала нового входа

Токены хранятся в системной связке ключей компьютера, на котором выполнен вход, так же как и пароли приложений. mail <profile> session end забывает их; Microsoft продолжает показывать приложение в списке, пока вы не удалите его на https://account.live.com/consent/Manage (личный аккаунт) или https://myapps.microsoft.com (рабочий или учебный).