Обзор процесса отправки почты в Microsoft Graph
В Microsoft Graph каждый из методов forward, reply, replyAll или sendMail создает и отправляет сообщение электронной почты в том же вызове. В этой статье описывается, как Outlook и Exchange Online обычно обрабатывают вызовы API отправки почты для отправки почты. Большинство шагов (шаги 2–7) выполняется после возврата ответа метода.
1. Создание сообщения в почтовом ящике отправителя
Outlook создает новое сообщение в папке Черновики отправителя, копирует содержимое сообщения, получателей и вложения из запроса JSON в черновик сообщения и сохраняет его. В случае успешного выполнения метод возвращает код состояния HTTP-ответа 202 Accepted
.
Если отправитель предоставил содержимое MIME, Exchange Online копирует его в одно свойство в новом черновике сообщения. Затем Exchange Online анализирует содержимое MIME и копирует соответствующее содержимое в свойства сообщения, а также в таблицы получателей и вложений. По завершении метод возвращает 202 Accepted
код состояния.
Этот шаг может завершиться ошибкой по таким причинам, как заполнен почтовый ящик отправителя или сетевое подключение к серверу отправителя не работает. Если метод завершается ошибкой, он возвращает код состояния 4xx или 5xx соответственно.
По завершении шага 1 прямое взаимодействие приложения с Microsoft Graph завершится.
2. Уведомление службы транспорта о новом исходящем сообщении
Exchange Online уведомляет свою транспортную службу о том, что новое сообщение доступно для получения.
3. Копирование исходящего сообщения в транспортный конвейер
Транспортный процесс считывает содержимое сообщения из почтового ящика отправителя, преобразует его в формат MIME и сохраняет его в транспортном конвейере. Если отправитель предоставил содержимое MIME, транспортный процесс копирует содержимое MIME более или менее нетронутым. В противном случае транспортный процесс сериализует свойства сообщения для создания содержимого MIME.
Если шаг 3 завершается ошибкой, транспортный процесс создает сообщение о недоставке и помещает его в папку "Входящие" отправителя.
4. Перемещение исходного сообщения в папку "Отправленные"
После того как все это будет выполнено успешно, транспорт перезвонет в магазин, чтобы взять на себя ответственность за сообщение. В ответ хранилище Exchange обновляет сообщение и перемещает его из папки Черновики в папку Отправленные. (В зависимости от необязательных свойств сообщения оно может переместиться в другую папку или удалить сообщение.)
5. Оценка политики и маршрутизация
Следующие шаги, выполняемые транспортом, включают принудительное применение политики, маршрутизацию и доставку следующего прыжка. Транспорт проверяет адреса электронной почты получателей и отправляет их в контейнер в соответствии с начальным прыжком маршрутизации. На этом этапе транспорт обнаруживает недопустимые адреса получателей, для которых транспорт отправляет отправителю отчеты о недоставках. Затем транспорт применяет политики, настроенные администраторами клиента. Такие политики могут отклонять сообщение на основе его содержимого, хранить копии и т. д. После применения политики транспорт отфильтровывает копию сообщения к каждому месту назначения следующего прыжка. Дополнительные сведения о транспортном потоке см. в разделе Поток обработки почты и конвейер транспорта.
6. Доставка сообщения получателям
Транспорт Exchange Online может нести ответственность за окончательную доставку всем получателям. Это зависит от того, имеют ли эти получатели почтовые ящики Exchange Online.
7. Доставка сообщений отчетов отправителю
Несколько служб участвуют в создании отчетов о доставке и их отправке отправителю соответствующим образом:
- Если ответственный транспортный компонент, который может быть компонентом Exchange Online или не exchange Online, определяет, что один или несколько адресов электронной почты получателя не являются конечными, компонент создает отчеты о недоставках.
- В то же время транспортный компонент создает отчеты о доставке, если отправитель явно запросил их.
- Служба электронной почты или клиент электронной почты получателя могут создавать уведомления о прочтении и нечитаемых уведомлениях или вообще не создавать.
Дополнительные сведения о сообщениях отчета см. в разделе DSN и NDR в Exchange Server.
Связанные материалы
- Зачем интегрироваться с почтой Outlook.
- Автоматизация создания, отправки и обработки сообщений.
- Отправка сообщений с содержимым MIME.
- Отправка сообщений Outlook от другого пользователя.
- Использование API почты
API Microsoft Graph, которые создают и отправляют черновик в отдельных вызовах: