Мониторинг электронной почты

Чтобы настроить мониторинг электронной почты с помощью API аудита электронной почты, администратор устанавливает диапазон дат, в течение которого аудитор должен получать копии отправленных и полученных электронных писем конкретного пользователя в виде вложения. Максимальное количество запросов на создание и удаление монитора в день — 1000 запросов. Это ограничение действует для каждого домена и включает все запросы, сделанные любым администратором в течение дня.

Сценарий отслеживаемой электронной почты включает три типа пользователей:

  • Администратор. Любой администратор домена может создавать, получать, обновлять и удалять монитор электронной почты, используя ресурс монитора API аудита электронной почты. Кроме того, администратор может использовать API для загрузки почтового ящика. Эти операции можно выполнять только внутри домена, которым управляет администратор.

  • Пользователь-источник. Пользователь-источник — это пользователь, который получает или отправляет сообщения, проверяемые пользователем назначения мониторинга. Любой администратор домена или пользователь учетной записи может быть исходным пользователем. Исходный пользователь должен находиться в том же домене, что и администратор и целевой пользователь.

  • Целевой пользователь. Целевой пользователь — это аудитор, который получает проверяемые сообщения электронной почты.

    • Получает скрытые копии (СК) всех входящих и исходящих сообщений электронной почты, включая входящие и исходящие вложения, пересылаемые сообщения и сообщения электронной почты, отправленные с мобильных устройств.
    • При желании администратор домена может включить дополнительные функции аудита для конечного пользователя. Дополнительные функции включают аудит сохраненных черновиков электронной почты, аудит архивных чатов Hangouts с другими пользователями, которые могут находиться в домене или за его пределами.
    • Несмотря на то, что целевой пользователь получает копию сообщения «СК», связь «СК» не отображается в заголовках сообщений, доступных в учетной записи исходного пользователя.
    • Каждое проверенное сообщение электронной почты отправляется конечному пользователю в виде вложения электронной почты. Администратор домена может настроить эти сообщения как полное сообщение электронной почты или только заголовки сообщений.
    • Этот целевой пользователь должен иметь активную учетную запись электронной почты в отслеживаемом домене. Это должен быть тот же домен, который связан с администратором и исходным пользователем.
    • Целевой пользователь может быть администратором или пользователем домена. И этот целевой пользователь может поменять роли, чтобы стать исходным пользователем, проверяемым другим конечным пользователем, который, в свою очередь, получает копии всех проверенных сообщений электронной почты, отправленных первому целевому пользователю.
    • Администратор домена создает один проверенный монитор электронной почты для одной уникальной пары «пользователь назначения — пользователь источника». Другими словами, отношения аудита — это один целевой пользователь к одному исходному пользователю. Каждый аудит выполняется с использованием ресурса монитора API. Используя несколько мониторов API, целевой пользователь может проверять множество пользователей в домене. А, используя несколько мониторов API, многие целевые пользователи могут проверять одного исходного пользователя.
    • Если создается дополнительный монитор API или существующий монитор API обновляется для пары «пользователь назначения — пользователь-источник», монитор, созданный последним, заменяет все ранее существовавшие мониторы для этой пары. По сути, именно так вы обновляете монитор API. Дополнительные сведения об обновлении монитора см. в разделе Обновление монитора электронной почты .

Создайте монитор электронной почты

Чтобы создать монитор электронной почты, отправьте следующий запрос POST с ресурсом монитора электронной почты:

POST https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/DOMAIN_NAME/SOURCE_USERNAME

Замените следующее:

  • DOMAIN_NAME : имя домена Google Workspace, например example.com.
  • SOURCE_USERNAME : имя пользователя, которое вы хотите отслеживать.

Запрос POST содержит следующий заголовок Content-type :

Content-type: application/atom+xml

Полный список параметров, которые можно использовать в запросе на мониторинг электронной почты, см. в разделе Ресурсы: monitor .

Пример создания нового монитора

В примере используются следующие параметры:

  • Пользователь, подлежащий аудиту, — amal@example.com .
  • destUserNameizumi .
  • beginDateJune 15, 2022, 00:00 hours .
  • endDateJune 30, 2022, 23:20 hours .
  • incomingEmailMonitorLevelFULL_MESSAGE .
  • outgoingEmailMonitorLevelHEADER_ONLY .
  • draftMonitorLevel имеет FULL_MESSAGE .
  • chatMonitorLevel равен FULL_MESSAGE .

Протокол

POST https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal

<atom:entry xmlns:atom='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>
   <apps:property name='destUserName' value='izumi'/>
   <apps:property name='beginDate' value='2022-06-15 00:00'/>
   <apps:property name='endDate' value='2022-06-30 23:20'/>
   <apps:property name='incomingEmailMonitorLevel' value='FULL_MESSAGE'/>
   <apps:property name='outgoingEmailMonitorLevel' value='HEADER_ONLY'/>
   <apps:property name='draftMonitorLevel' value='FULL_MESSAGE'/>
   <apps:property name='chatMonitorLevel' value='FULL_MESSAGE'/>
</atom:entry>

В случае успеха сервер возвращает код состояния 201 CREATED и запись AtomPub с элементом entry , показывающим новые настройки монитора:

<entry xmlns:atom='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>
    <id>https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/id</id>
    <updated>2022-04-17T15:02:45.646Z</updated/>
    <link rel='self' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/id'/>
    <link rel='edit' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/id'/>
    <apps:property name='destUserName' value='izumi'/>
    <apps:property name='beginDate' value='2022-06-15 00:00'/>
    <apps:property name='endDate' value='2022-06-30 23:20'/>
    <apps:property name='incomingEmailMonitorLevel' value='FULL_MESSAGE'/>
    <apps:property name='outgoingEmailMonitorLevel' value='HEADER_ONLY'/>
    <apps:property name='draftMonitorLevel' value='FULL_MESSAGE'/>
    <apps:property name='chatMonitorLevel' value='FULL_MESSAGE'/>
</entry>

Джава

import java.util.Calendar;
import com.google.gdata.client.appsforyourdomain.audit.AuditService;
import com.google.gdata.data.appsforyourdomain.generic.GenericEntry;
import com.google.gdata.client.appsforyourdomain.audit.MailMonitor;
...

MailMonitor monitor = new MailMonitor();
Calendar beginDate = Calendar.getInstance();
beginDate.set(2022, Calendar.JUNE, 15, 0, 0)
monitor.setBeginDate(beginDate.getTime());
Calendar endDate = Calendar.getInstance();
endDate.set(2022, Calendar.JUNE, 30, 23, 20);
monitor.setEndDate(endDate.getTime());
monitor.setIncomingEmailMonitorLevel("FULL_MESSAGE");
monitor.setOutgoingEmailMonitorLevel("HEADER_ONLY");
monitor.setDraftMonitorLevel("FULL_MESSAGE");
monitor.setChatMonitorLevel("FULL_MESSAGE");
monitor.setDestUserName("izumi");

AuditService service = new AuditService("admin@example.com", "p@55w0rd", "example.com", "example.com-auditapp-v1");
GenericEntry entry = service.createMailMonitor("amal", monitor);

.СЕТЬ

using System;
using Google.GData.Apps;
using Google.GData.Extensions.Apps;
...

MailMonitor monitor = new MailMonitor();
monitor.BeginDate = new DateTime(2022, 6, 15);
monitor.EndDate = new DateTime(2022, 6, 30, 23, 20, 0);
monitor.IncomingEmailMonitorLevel = MonitorLevel.FULL_MESSAGE;
monitor.OutgoingEmailMonitorLevel = MonitorLevel.HEADER_ONLY;
monitor.DraftMonitorLevel = MonitorLevel.FULL_MESSAGE;
monitor.ChatMonitorLevel = MonitorLevel.FULL_MESSAGE;
monitor.DestinationUserName = "izumi";

AuditService service = new AuditService("example.com", "example.com-auditapp-v1");
service.setUserCredentials("admin@example.com", "p@55w0rd");
MailMonitor monitorEntry = service.CreateMailMonitor("amal", monitor);

Обновите монитор электронной почты

При обновлении монитора с использованием одного и того же исходного пользователя и целевого пользователя исходные настройки свойств монитора заменяются новыми настройками.

Чтобы обновить конфигурацию аудита в мониторе электронной почты, отправьте запрос POST на URI канала монитора и включите заголовок Authorization :

POST https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/DOMAIN_NAME/SOURCE_USERNAME

Замените следующее:

  • DOMAIN_NAME : имя домена Google Workspace, например example.com.
  • SOURCE_USERNAME : имя пользователя монитора электронной почты, который вы хотите обновить.

Пример обновления монитора электронной почты

В этом примере обновляется монитор, созданный в примере создания монитора электронной почты , путем обновления обязательного свойства endDate и необязательного свойства chatMonitorLevel . В этом примере используются следующие параметры:

  • Новая endDateAugust 30, 2022, 23:20 hours .
  • chatMonitorLevel теперь HEADER_ONLY .
  • Пользователь, подлежащий аудиту, остается amal@example.com .
  • destUserName остается izumi .

Свойства монитора, которые не были обновлены, возвращаются к значениям по умолчанию. Например, в этом примере свойства incomingEmailMonitorLevel и outgoingEmailMonitorLevel возвращаются к FULL_MESSAGE , а draftMonitorLevel — к NONE .

Протокол

POST https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal

<atom:entry xmlns:atom='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>
    <apps:property name='destUserName' value='izumi'/>
    <apps:property name='endDate' value='2022-08-30 23:20'/>
    <apps:property name='chatMonitorLevel' value='HEADER_ONLY'/>
</atom:entry>

В случае успеха сервер возвращает код состояния 201 CREATED и запись AtomPub с обновленными элементами entry . Свойства, которые не были обновлены и показаны в ответе, возвращаются к значениям по умолчанию.

<entry>
<entry xmlns='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>
    <id>https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/izumi</id>
    <updated>2022-08-20T00:28:57.319Z</updated>
    <link rel='self' type='application/atom+xml' href="https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/izumi" />
    <link rel='edit' type='application/atom+xml' href="https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/izumi" />
    <apps:property name='chatMonitorLevel' value='HEADER_ONLY' />
    <apps:property name='destUserName' value='izumi' />
    <apps:property name='endDate' value='2022-08-30 23:20' />
</entry>

Джава

import java.util.Calendar;
import com.google.gdata.client.appsforyourdomain.audit.AuditService;
import com.google.gdata.client.appsforyourdomain.audit.MailMonitor;
import com.google.gdata.data.appsforyourdomain.generic.GenericEntry;
...

MailMonitor monitor = new MailMonitor();
Calendar endDate = Calendar.getInstance();
endDate.set(2022, Calendar.AUGUST, 30, 23, 20);
monitor.setEndDate(endDate.getTime());
monitor.setChatMonitorLevel("HEADER_ONLY");
monitor.setDestUserName("izumi");

AuditService service = new AuditService("admin@example.com", "p@55w0rd", "example.com", "example.com-auditapp-v1");
GenericEntry entry = service.createMailMonitor("amal", monitor);

.СЕТЬ

using System;
using Google.GData.Apps;
using Google.GData.Extensions.Apps;
...

MailMonitor monitor = new MailMonitor();
monitor.EndDate = new DateTime(2022, 8, 30, 23, 20, 0);
monitor.ChatMonitorLevel = MonitorLevel.HEADER_ONLY;
monitor.DestinationUserName = "izumi";

AuditService service = new AuditService("example.com", "example.com-auditapp-v1");
service.setUserCredentials("admin@example.com", "p@55w0rd");
MailMonitor monitorEntry = service.CreateMailMonitor("amal", monitor);

Получить все мониторы электронной почты исходного пользователя.

Чтобы получить все мониторы, связанные с исходным пользователем, выполните HTTP-запрос GET к URI канала монитора, используя формат UTC для даты и включив заголовок Authorization :

GET https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/DOMAIN_NAME/SOURCE_USERNAME

Замените следующее:

  • DOMAIN_NAME : имя домена Google Workspace, например example.com.
  • SOURCE_USERNAME : имя пользователя монитора электронной почты, который вы хотите получить.

Эта операция не имеет параметров в теле запроса, поэтому тело XML пусто.

Пример получения всех мониторов электронной почты

В этом примере извлекаются все мониторы, созданные для пользователя amal@example.com :

Протокол

GET https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal

В случае успеха сервер возвращает код состояния 201 CREATED и канал AtomPub с элементами entry для двух мониторов, показывающий настройки для двух целевых пользователей ( izumi@example.com, taylor@example.com ).

<feed xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:apps='http://schemas.google.com/apps/2006'>
    <id>https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal</id>
    <updated>2010-03-17T15:29:21.064Z</updated>
    <link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal'/>
    <link rel='http://schemas.google.com/g/2005#post' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal'/>
    <link rel='self' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal'/>
    <openSearch:startIndex>1</openSearch:startIndex>
    <entry>
        <id>https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/izumi</id>
        <updated>2022-04-17T15:29:21.064Z</updated>
        <link rel='self' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/izumi&'/>
        <link rel='edit' type='application/atom+xml' href='https://apps-apis.google.com/feeds/compliance/audit/mail/monitor/example.com/amal/izumi&'/>
        <apps:property name='requestId' value='53156'/>
        <apps:property name='destUserName' value='izumi'/>
        <apps:property name='beginDate' value='2022-06-15 00:00'/>
        <apps:property name='endDate' value='2022-06-30 23:20'/>
        <apps:property name='incomingEmailMonitorLevel' value='FULL_MESSAGE'/>
        <apps:property name='outgoingEmailMonitorLevel' value='FULL_MESSAGE'/>
        <apps:property name='draftMonitorLevel' value='FULL_MESSAGE'/>
        <apps:property name='chatMonitorLevel' value='FULL_MESSAGE'/>
   </entry>
   <entry>
        <id>>https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/taylor</id>
        <updated>2022-05-17T15:29:21.064Z</updated>
        <link rel='self' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/taylor'/>
        <link rel='edit' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/taylor'/>
        <apps:property name='requestId' value='22405'/>
        <apps:property name='destUserName' value='taylor'/>
        <apps:property name='beginDate' value='2022-06-20 00:00'/>
        <apps:property name='endDate' value='2022-07-30 23:20'/>
        <apps:property name='incomingEmailMonitorLevel' value='FULL_MESSAGE'/>
        <apps:property name='outgoingEmailMonitorLevel' value='FULL_MESSAGE'/>
        <apps:property name='draftMonitorLevel' value='FULL_MESSAGE'/>
        <apps:property name='chatMonitorLevel' value='FULL_MESSAGE'/>
    </entry>
</feed>

Джава

import com.google.gdata.client.appsforyourdomain.audit.AuditService;
import com.google.gdata.data.appsforyourdomain.generic.GenericFeed;
...

AuditService service = new AuditService("admin@example.com", "p@55w0rd", "example.com", "example.com-auditapp-v1");
GenericFeed feed = service.retrieveMonitors("amal");

.СЕТЬ

using System;
using System.Collections.Generic;
using Google.GData.Apps;
using Google.GData.Extensions.Apps;
...

AuditService service = new AuditService("example.com", "example.com-auditapp-v1");
service.setUserCredentials("admin@example.com", "p@55w0rd");
GenericFeed<MailMonitor> monitors = service.RetrieveMailMonitors("amal");

Удаление монитора электронной почты

Чтобы удалить монитор электронной почты, отправьте HTTP-запрос DELETE к URI удаления канала монитора и включите заголовок Authorization :

DELETE https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/DOMAIN_NAME/SOURCE_USERNAME/DESTINATION_USERNAME

Замените следующее:

  • DOMAIN_NAME : имя домена Google Workspace, например example.com.
  • SOURCE_USERNAME : имя пользователя монитора электронной почты, который вы хотите удалить.
  • DESTINATION_USERNAME : аудитор, который получает проверяемые сообщения электронной почты.

Пример удаления монитора электронной почты

В этом примере удаляются мониторы, созданные для пользователя amal@example.com с destinationUserName как izumi .

Протокол

DELETE https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/izumi

Джава

import com.google.gdata.client.appsforyourdomain.audit.AuditService;
...

AuditService service = new AuditService("admin@example.com", "p@55w0rd", "example.com", "example.com-auditapp-v1");
service.deleteMonitor("amal", "izumi");

.СЕТЬ

using System;
using Google.GData.Apps;
using Google.GData.Extensions.Apps;
...

AuditService service = new AuditService("example.com", "example.com-auditapp-v1");
service.setUserCredentials("admin@example.com", "p@55w0rd");
service.DeleteMailMonitor("amal", "izumi");