Почта

Настройка SMTP

Status200 может отправлять почту через ваш SMTP с тремя вариантами аутентификации:

  • Username and Password — классическая SMTP-аутентификация
  • OAuth 2.0 — для Microsoft 365 и Google Workspace
  • None — relay без аутентификации

Ниже — OAuth 2.0 для Microsoft 365 и Google Workspace.

OAuth 2.0

OAuth 2.0 удобен там, где отключили basic auth. Status200 поддерживает:

  • Client Credentials — Microsoft 365 и большинство OAuth-провайдеров
  • JWT Bearer — service account Google Workspace

Поля для OAuth

ПолеОписание
HostnameАдрес SMTP-сервера
PortОбычно 587 (STARTTLS) или 465 (implicit TLS)
UsernameАдрес отправителя
Authentication TypeOAuth
OAuth Provider TypeClient Credentials (Microsoft) или JWT Bearer (Google)
Client IDApplication/Client ID у провайдера (для Google — email service account)
Client SecretClient secret (для Google — private key)
Token URLEndpoint выдачи токена
ScopeНужные scope для SMTP

Microsoft 365

Нужна регистрация приложения в Microsoft Entra (Azure AD) и нужные permissions.

Шаг 1: регистрация в Microsoft Entra

  1. Microsoft Entra admin center
  2. IdentityApplicationsApp registrations
  3. New registration
  4. Имя (например, «Status200 SMTP»)
  5. Supported account types: только ваш каталог
  6. Redirect URI не нужен для client credentials
  7. Register

На Overview сохраните:

  • Application (client) ID — Client ID
  • Directory (tenant) ID — для Token URL

Шаг 2: client secret

  1. Certificates & secrets
  2. New client secret
  3. Описание и срок действия
  4. Add
  5. Сразу скопируйте secret — позже не покажут

Шаг 3: SMTP API permissions

  1. API permissionsAdd a permission
  2. APIs my organization uses
  3. Office 365 Exchange Online
  4. Application permissions
  5. Включить SMTP.SendAsApp
  6. Add permissions
  7. Grant admin consent (нужны права админа)

Шаг 4: service principal в Exchange Online

  1. Модуль PowerShell:
Install-Module -Name ExchangeOnlineManagement -Force
  1. Подключение:
Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline -Organization <your-tenant-id>
  1. Регистрация service principal (Object ID из Enterprise Applications, не из App Registrations):
# Object ID: Microsoft Entra → Enterprise Applications → ваше приложение
New-ServicePrincipal -AppId <application-client-id> -ObjectId <enterprise-app-object-id>
  1. Права на ящик отправителя:
Add-MailboxPermission -Identity "sender@yourdomain.com" -User <service-principal-id> -AccessRights FullAccess

# или только SendAs
Add-RecipientPermission -Identity "sender@yourdomain.com" -Trustee <service-principal-id> -AccessRights SendAs

Шаг 5: настройка в Status200

ПолеЗначение
Hostnamesmtp.office365.com
Port587
UsernameЯщик, которому выдали права
Authentication TypeOAuth
OAuth Provider TypeClient Credentials
Client IDApplication (client) ID
Client SecretSecret из шага 2
Token URLhttps://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token
Scopehttps://outlook.office365.com/.default
From EmailКак Username
Secure (TLS)Включено

<tenant-id> — Directory (tenant) ID.


Google Workspace

Нужен service account с domain-wide delegation. Прямой client credentials flow для Gmail SMTP Google не поддерживает.

Требования

  • Google Workspace (не consumer Gmail)
  • Super Admin в Admin Console
  • Доступ к Google Cloud Console

Шаг 1: проект в Google Cloud

  1. Google Cloud Console
  2. New Project → создать и выбрать проект

Шаг 2: Gmail API

  1. APIs & ServicesLibrary
  2. Найти Gmail APIEnable

Шаг 3: service account

  1. CredentialsCreate CredentialsService account
  2. Имя и описание → Create and ContinueDone

Шаг 4: ключи

  1. Открыть созданный service account → Keys
  2. Add KeyCreate new keyJSON
  3. Файл содержит client_id и private_key (используются как Client ID / Secret в смысле ключа)

Шаг 5: domain-wide delegation

  1. Show Advanced Settings
  2. Запомнить числовой Client ID
  3. Включить Enable Google Workspace Domain-wide DelegationSave

Шаг 6: авторизация в Google Workspace Admin

  1. Google Workspace Admin
  2. SecurityAccess and data controlAPI ControlsManage Domain Wide Delegation
  3. Add new
  4. Client ID из шага 5
  5. OAuth Scopes: https://mail.google.com/
  6. Authorize

Распространение делегирования может занять от минут до 24 часов.

Шаг 7: настройка в Status200

ПолеЗначение
Hostnamesmtp.gmail.com
Port587
UsernameАдрес Workspace, от имени которого идёт отправка (impersonation)
Authentication TypeOAuth
OAuth Provider TypeJWT Bearer
Client IDclient_email из JSON service account
Client SecretПолный private_key из JSON (включая -----BEGIN PRIVATE KEY----- / END)
Token URLhttps://oauth2.googleapis.com/token
Scopehttps://mail.google.com/
From EmailКак Username
Secure (TLS)Включено

Важно: для Google в поле Client ID указывается email service account (client_email), а не числовой client_id. Service account имперсонирует пользователя из Username.


Устранение неполадок

Microsoft 365

ПроблемаЧто проверить
Authentication unsuccessfulService principal в Exchange и права на ящик
AADSTS700016Client ID и наличие приложения в tenant
AADSTS7000215: Invalid client secretSecret истёк — выпустить новый
Mailbox not enabledВыполнить Add-MailboxPermission

Google Workspace

ПроблемаЧто проверить
invalid_grantDomain-wide delegation и время распространения
unauthorized_clientClient ID в Admin Console
access_deniedScope https://mail.google.com/
Third-party Drive disabledSecurity → API Controls в Admin

Общее

  • Проверка кнопкой Send Test Email в Status200
  • Логи Status200 для деталей ошибок
  • Токены кэшируются и обновляются до истечения

Безопасность

  1. Регулярная ротация secret’ов
  2. Отдельные service account / приложения под Status200
  3. Минимальные права (SMTP.SendAsApp / mail.google.com)
  4. Мониторинг входов и отправки
  5. Не хранить секреты в репозитории

Ссылки

Microsoft 365

Google Workspace