Скачать почтовый ящик

Как администратор, вы можете загружать учетные записи почтовых ящиков в своем домене для целей аудита. Для подготовки почтового ящика к экспорту API аудита электронной почты создает зашифрованную копию почтового ящика пользователя. Система возвращает URL-адреса зашифрованных файлов почтовых ящиков, которые после загрузки и расшифровки становятся доступны в формате mbox .

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

Google хранит зашифрованные файлы почтовых ящиков в течение 3 недель, поэтому убедитесь, что вы загрузили эти файлы в течение этого периода времени. По истечении этого времени они будут удалены. Чтобы удалить эти файлы почтовых ящиков до истечения указанного периода времени, см. раздел «Удаление зашифрованного почтового ящика» .

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

  • Сгенерируйте и загрузите открытый ключ — Создайте открытый ключ шифрования для загрузки почтовых ящиков. Этот шаг нужно выполнить только один раз. Если вы уже создали открытый ключ, вам не нужно выполнять этот шаг для каждого экспорта почтового ящика.
  • Создание экспортной версии почтового ящика пользователя — Процесс экспорта почтового ящика начинается с запроса на создание копии почтового ящика пользователя. API аудита электронной почты аутентифицирует и авторизует ваши учетные данные и возвращает уникальный идентификатор запроса. Процесс создания почтового ящика может быть длительным и занять несколько дней в зависимости от размера почтового ящика.
  • Получите статус загрузки почтового ящика — используйте идентификатор запроса на экспорт почтового ящика, чтобы получить статус ожидающего запроса. После копирования и подготовки почтового ящика к экспорту ответ возвращает статус COMPLETED вместе со списком зашифрованных файлов почтового ящика в виде HTTP-адресов. Используйте этот набор URL-адресов для загрузки файлов почтового ящика.
  • Получите загруженные файлы почтового ящика — После загрузки зашифрованных файлов расшифруйте их, используя закрытый ключ домена. После расшифровки файлы будут отображаться в формате mbox.

Сгенерировать открытый ключ

Прежде чем загрузить почтовый ящик, необходимо загрузить открытый ключ шифрования OpenPGP для домена. Этот шаг выполняется один раз при настройке загрузки почтового ящика . Вы можете сгенерировать пару открытого/закрытого ключей, используя любое программное обеспечение, совместимое с OpenPGP, например, GNU Privacy Guard (GPG) . Этот открытый ключ шифрования должен представлять собой закодированный в ASCII ключ RSA в формате PGP.

Для генерации ключа с помощью GNU Privacy Guard выполните следующие действия:

  1. Установите GnuPG 1.4 .

  2. Сгенерируйте новый ключ:

    gpg --gen-key --expert
    
  3. Чтобы настроить собственные возможности, выберите вариант 8 и включите функцию ввода текста.

  4. Для завершения процесса генерации ключа примите все параметры по умолчанию. Для этого ключа должна быть включена функция шифрования. Вы можете отключить функцию подписи, поскольку она не используется.

  5. Экспортируйте ключ только для идентификатора пользователя, соответствующего вашему рабочему пространству Google:

    • Если вы впервые используете GPG для генерации ключа, экспортируйте только что сгенерированный ключ:

      gpg --armor --export
      
    • Если вы уже использовали GPG для генерации других ключей, у вас в связке ключей находится несколько ключей. Получите список ключей:

      gpg --list-keys
      

      Если в списке несколько ключей, укажите uid того ключа, который вы хотите экспортировать:

      gpg --armor --export KEY_UID
      
  6. Закодируйте ключ в формате base64 с помощью Motobit или другого инструмента. Убедитесь, что скопированы все строки, включая заголовок, и не добавляйте лишних строк. Файл открытого ключа следует читать с кодировкой US-ASCII (предпочтительное название кодировки ASCII по версии IANA ).

Пример

В следующем примере показано, как преобразовать открытый ключ в строку, закодированную в формате Base64.

В следующем примере показан открытый ключ до преобразования:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.10 (GNU/Linux)

mQENBErWaD4BCACt2ngfs6/+QOGYbxNbc3gLnXHtqp7NTTXNW4SJo+/A1oUZoGxA
Qx6zFXhQ/8MXW66+8STS1YqNJOARFtjbIKPwjrdcukdPzYVKGZre0RaxCnMyCV+6
F4YNQD1UegHTu2wCGR1uiYOfLxUa7/do6s31WRTH8vbtiPY9/6obEIxDjDzKIqYO
rvRDWqALBYklOkJ3Hbgfyl42EsnLiAhS+dMs2PCDi2X0ZJCPZ8eTjLsdAtqVZJ+R
WC1J3UDuFfmcpsDYRtUL9w6YMtlapC+9mmJ3ABEBAAG0V0Rhc2hlciBUZXN0IChU
dGVyMkBkYXNoZXItaHlkLXRlc3QuY29tPokBOAQTAQIAIgUCStZoPgIbDQYLCQgH
k19QckTpwBdskEYumFvmWve5UX2SVV7fzOC0nZtgFxtZGlJhGmjsA3rxFTlb+Ira
WZayXCWYiCzd7m9z5/KyGD2GFTK/94mdm25N6GXh/b35pIFZXBI/rZjrYrhYRBFu
GtzGFIw9AAnFyUzEUUVfPWUtBe5yHMW54C60nHk5xYIa6qFhiLp4PYqZCrYX1iIs
fRROFA==
=STHr
-----END PGP PUBLIC KEY BLOCK-----

В следующем примере показан открытый ключ после преобразования:

LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tDQpWZXJzaW9uOiBHbn
VQRyB2MS40LjEwIChHTlUvTGludXgpDQoNCm1RRU5CRXJXYUQ0QkNBQ3QybmdmczYv

K1FPR1lieE5iYzNnTG5YSHRxcDdOVFRYTlc0U0pvKy9BMW9VWm9HeEENClF4NnpGWG
hRLzhNWFc2Nis4U1RTMVlxTkpPQVJGdGpiSUtQd2pyZGN1a2RQellWS0dacmUwUmF4
Q25NeUNWKzYNCkY0WU5RRDFVZWdIVHUyd0NHUjF1aVlPZkx4VWE3L2RvNnMzMVdSVE
g4dmJ0aVBZOS82b2JFSXhEakR6S0lxWU8NCnJ2UkRXcUFMQllrbE9rSjNIYmdmeWw0
MkVzbkxpQWhTK2RNczJQQ0RpMlgwWkpDUFo4ZVRqTHNkQXRxVlpKK1INCldDMUozVU
R1RmZtY3BzRFlSdFVMOXc2WU10bGFwQys5bW1KM0FCRUJBQUcwVjBSaGMyaGxjaUJV
WlhOMElDaFUNCmRHVnlNa0JrWVhOb1pYSXRhSGxrTFhSbGMzUXVZMjl0UG9rQk9BUV
RBUUlBSWdVQ1N0Wm9QZ0liRFFZTENRZ0gNCmsxOVFja1Rwd0Jkc2tFWXVtRnZtV3Zl
NVVYMlNWVjdmek9DMG5adGdGeHRaR2xKaEdtanNBM3J4RlRsYitJcmENCldaYXlYQ1
dZaUN6ZDdtOXo1L0t5R0QyR0ZUSy85NG1kbTI1TjZHWGgvYjM1cElGWlhCSS9yWmpy
WXJoWVJCRnUNCkd0ekdGSXc5QUFuRnlVekVVVVZmUFdVdEJlNXlITVc1NEM2MG5Iaz
V4WUlhNnFGaGlMcDRQWXFaQ3JZWDFpSXMNCmZSUk9GQT09DQo9U1RIcg0KLS0tLS1F
TkQgUEdQIFBVQkxJQyBLRVkgQkxPQ0stLS0tLQ==

Загрузите открытый ключ

  1. Для загрузки открытого ключа создайте XML-запись с открытым ключом, закодированным в base64:

    <atom:entry xmlns:atom='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>
    <apps:property name="publicKey" value="ENCODED_KEY"/>
    </atom:entry>
    
  2. Отправьте HTTP POST запрос на URI канала publickey в вашем домене Google Workspace:

    POST https://apps-apis.google.com/a/feeds/compliance/audit/publickey/DOMAIN_NAME
    

    В случае успеха сервер возвращает 201 CREATED status code и ответ, аналогичный приведенному примеру:

    <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/publickey/DOMAIN_NAME/id>/id>
    <updated>2009-04-17T15:02:45.646Z</updated>
    <link rel='self' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/publickey/DOMAIN_NAME/id'/>
    <link rel='edit' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/publickey/DOMAIN_NAME/id'/>
    <apps:property name='publicKey' value='ENCODED_KEY'/>
    </entry>
    

Создать копию почтового ящика для экспорта

Для подготовки копии почтового ящика пользователя к экспорту и загрузке используйте канал экспорта API аудита электронной почты.

Отправьте POST запрос на URI экспортируемого канала, включив в него заголовок Authorization :

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

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

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

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

Content-type: application/atom+xml

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

Пример создания почтового ящика для экспорта.

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

  • Пользователю, для которого необходимо экспортировать почтовый ящик, является quinn@example.com .
  • Дата beginDate : July 1, 2022, 04:30 hours .
  • endDate : August 30, 2022, 20:00 hours .
  • includeDeleted имеет значение false .
  • searchQuery находится in:chat .
  • packageContentFULL_MESSAGE .

Протокол

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

<atom:entry xmlns:atom='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>
   <apps:property name='beginDate' value='2022-07-01 04:30'/>
   <apps:property name='endDate' value='2022-08-30 20:00'/>
   <apps:property name='includeDeleted' value='false'/>
   <apps:property name='searchQuery' value='in:chat'/>
   <apps:property name='packageContent' value='FULL_MESSAGE'/>
</atom:entry>

В случае успеха сервер возвращает код состояния 201 CREATED и запись в AtomPub.

<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/export/example.com/quinn/53156>/id>
    <updated>2022-10-17T15:02:45.646Z</updated>
    <link rel='self' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/export/example.com/quinn/53156'/>
    <link rel='edit' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/export/example.com/quinn/53156'/>
    <apps:property name='status' value='PENDING'/>
    <apps:property name='packageContent' value='FULL_MESSAGE'/>
    <apps:property name='includeDeleted' value='false'/>
    <apps:property name='searchQuery' value='in:chat'/>
    <apps:property name='completedDate' value='2022-09-18 10:13'/>
    <apps:property name='adminEmailAddress' value='admin1@example.com'/>
    <apps:property name='requestId' value='53156'/>
    <apps:property name='userEmailAddress' value='quinn@example.com'/>
    <apps:property name='endDate' value='2022-08-30 20:00'/>
    <apps:property name='requestDate' value='2022-09-17 12:51'/>
    <apps:property name='beginDate' value='2022-07-01 04:30'/>
</entry>

В этом примере обработка данного почтового ящика завершена. Свойство statusCOMPLETED , а numberOfFiles возвращаемых для экспорта, равно двум.

Java

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

MailBoxDumpRequest request = new MailBoxDumpRequest();
request.setAdminEmailAddress("admin@example.com");
request.setUserEmailAddress("quinn@example.com");

Calendar beginDate = Calendar.getInstance();
beginDate.set(2022, Calendar.JULY, 1, 4, 30);
request.setBeginDate(beginDate.getTime());

Calendar endDate = Calendar.getInstance();
endDate.set(2022, Calendar.AUGUST, 30, 20, 0);
request.setEndDate(endDate.getTime());

request.setIncludeDeleted(false);
request.setSearchQuery("in:chat");
request.setPackageContent("FULL_MESSAGE");

AuditService service = new AuditService("admin@example.com", "p@55w0rd", "example.com", "example.com-auditapp-v1");
GenericEntry mailboxDumpEntry = service.createMailboxDumpRequest(request);

String requestId = mailboxDumpEntry.getRequestId();
String status = mailboxDumpEntry.getStatus();
String numberOfFiles = mailboxDumpEntry.getNumberOfFiles();

.СЕТЬ

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

MailboxDumpRequest mailboxDumpRequest = new MailboxDumpRequest();
mailboxDumpRequest.BeginDate = new DateTime(2022, 7, 1, 4, 30, 0);
mailboxDumpRequest.EndDate = new DateTime(2022, 8, 30, 20, 0, 0);
mailboxDumpRequest.IncludeDeleted = false;
mailboxDumpRequest.SearchQuery = "in:chat";
mailboxDumpRequest.PackageContent = MonitorLevel.FULL_MESSAGE;

AuditService service = new AuditService("example.com", "example.com-auditapp-v1");
service.setUserCredentials("admin@example.com", "p@55w0rd");
MailboxDumpRequest dumpRequest = service.CreateMailboxDumpRequest("quinn", mailboxDumpRequest);

Получить статус экспорта почтового ящика

Поскольку подготовка к экспорту почтового ящика — это асинхронный процесс, используйте этот запрос на получение данных, чтобы проверить, завершена ли обработка зашифрованного почтового ящика.

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

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

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

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

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

PENDING
Запрос обрабатывается.
ERROR
Запрос не удался из-за ошибки. Например, возможной ошибкой может быть загружен неверный открытый ключ API для домена.
COMPLETED
Запрос полностью обработан, и зашифрованные файлы почтового ящика готовы к загрузке.
MARKED_DELETE
Запрос будет помечен для удаления при следующем запуске задачи очистки Google. Для получения дополнительной информации об этой задаче очистки см. раздел «Удаление зашифрованного почтового ящика» .
DELETED
Файлы почтового ящика были успешно удалены с помощью операции «Удалить зашифрованный почтовый ящик» .
EXPIRED
Файлы почтового ящика были удалены компанией Google по истечении 3-недельного срока хранения.

Пример получения статуса экспорта почтового ящика.

В этом примере извлекается статус почтового ящика, соответствующий идентификаторам requestIds 53156 и 34201 для пользователя quinn@example.com .

Протокол

GET https://apps-apis.google.com/a/feeds/compliance/audit/mail/export/example.com/quinn/53156

В случае успеха сервер возвращает код состояния 201 CREATED .

Как видно из следующего ответа, статус — ERROR , и, следовательно, зашифрованные файлы почтового ящика так и не были созданы.

<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/export/example.com/quinn/53156</id>
    <updated>2022-10-17T15:02:45.646Z</updated>
    <link rel='self' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/export/example.com/quinn/53156'/>
    <link rel='edit' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/export/example.com/quinn/53156'/>
    <apps:property name='status' value='ERROR'/>
    <apps:property name='packageContent' value='FULL_MESSAGE'/>
    <apps:property name='includeDeleted' value='false'/>
    <apps:property name='searchQuery' value='in:chat'/>
    <apps:property name='completedDate' value='2022-09-18 10:13'/>
    <apps:property name='adminEmailAddress' value='admin1@example.com'/>
    <apps:property name='numberOfFiles' value='0'/>
    <apps:property name='requestId' value='53156'/>
    <apps:property name='userEmailAddress' value='quinn@example.com'/>
    <apps:property name='endDate' value='2022-08-30 20:00'/>
    <apps:property name='requestDate' value='2022-09-17 12:51'/>
    <apps:property name='beginDate' value='2022-07-01 04:30'/>
</entry>

В этом примере извлекается статус почтового ящика, соответствующий идентификатору requestId 34201 :

GET https://apps-apis.google.com/a/feeds/compliance/audit/mail/export/example.com/quinn/34201

Второй пример успешно завершается со статусом COMPLETED . Он возвращает два URL-адреса файлов почтовых ящиков, содержащих зашифрованные файлы почтовых ящиков, которые можно загрузить, используя URL-адреса в элементах fileUrl .


<entry>...
    ...
    <apps:property name='status' value='COMPLETED'/>
    <apps:property name='packageContent' value='FULL_MESSAGE'/>
    <apps:property name='completedDate' value='2022-09-18 10:13'/>
    <apps:property name='adminEmailAddress' value='admin2@example.com'/>
    <apps:property name='numberOfFiles' value='2'/>
    <apps:property name='requestId' value='34201'/>
    <apps:property name='userEmailAddress' value='namrata@example.com'/>
    <apps:property name='requestDate' value='2022-09-17 12:51'/>
    <apps:property name='fileUrl0'  value='https://apps-apis.google.com/a/data/compliance/audit/OQAAABW3Z2OlwkDFR0H5n_6lnYAzv-pWlkAlbTyAzvJEV0MC4c7lBDW' />
    <apps:property name='fileUrl1'  value='https://apps-apis.google.com/a/data/compliance/audit/OQAAABW3Z2OlwkD55nLv-pWlkAlbTyAzvJEVPnVYW45C4cC34gtyVCC' />
</entry>

Java

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

AuditService service = new AuditService("admin@example.com", "p@55w0rd", "example.com", "example.com-auditapp-v1");
GenericEntry mailboxDumpEntry1 = service.retrieveMailboxDumpRequest("quinn", "53156");
String status = mailboxDumpEntry1.getProperty("status"); // Status is "ERROR" if the mailbox for this request isn't created

GenericEntry mailboxDumpEntry2 = service.retrieveMailboxDumpRequest("quinn", "34201");
String status = mailboxDumpEntry2.getProperty("status");

.СЕТЬ

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");
MailboxDumpRequest mailboxDumpEntry1 = service.RetrieveMailboxDumpRequest("quinn", "53156");
RequestStatus status1 = mailboxDumpEntry1.Status; // Status is "ERROR" if the mailbox for this request isn't created

MailboxDumpRequest mailboxDumpEntry2 = service.RetrieveMailboxDumpRequest("quinn", "34201");
RequestStatus status2 = mailboxDumpEntry2.Status;

Получить все запросы на получение статуса почтового ящика.

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

GET https://apps-apis.google.com/a/feeds/compliance/audit/mail/export/DOMAIN_NAME?fromDate=FROM_DATE

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

  • DOMAIN_NAME : доменное имя Google Workspace — например, example.com.
  • FROM_DATE : дата, закодированная в формате UTC (Всемирное координированное время), полученная из зашифрованного запроса к почтовому ящику. Если в этом GET запросе не указана fromDate , будут получены все запросы за последние три недели.

При большом объеме ответа каждая страница результатов возвращает максимум 100 записей и содержит URI в теге <link rel='next'...> указывающий на следующую страницу результатов. При разработке клиентского приложения ваш код должен обрабатывать эти дополнительные результаты.

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

В этом примере отображаются все запросы на проверку состояния почтового ящика для домена example.com , сделанные 9 PM, August 30, 2022 или позже:

Протокол

<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/export/domain</id>
    <updated>2010-03-17T15:29:21.064Z</updated>
    <link rel='next' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/export/tapoloka.com?fromDate=2022-08-30%2021:00'/>
    <link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/export/tapoloka.com'/>
    <link rel='http://schemas.google.com/g/2005#post' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/export/tapoloka.com'/>
    <link rel='self' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/export/tapoloka.com?fromDate=2022-08-30%2021:00'/>
    <openSearch:startIndex>1</openSearch:startIndex>
    <entry>
        <atom:id>https://apps-apis.google.com/a/feeds/compliance/audit/mail/export/domain/request ID</atom:id>
        <atom:updated>2022-04-17T15:29:21.064Z</atom:updated>
        <atom:link rel='self' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/export/domain/request ID'/>
        <atom:link rel='edit' type='application/atom+xml' href='https://apps-apis.google.com/feeds/compliance/audit/mail/export/domain/request ID'/>
        <apps:property name='status' value='ERROR'/>
        <apps:property name='packageContent' value='FULL_MESSAGE'/>
        <apps:property name='includeDeleted' value='false'/>
        <apps:property name='searchQuery' value='in:chat'/>
        <apps:property name='completedDate' value='2022-09-18 10:13'/>
        <apps:property name='adminEmailAddress' value='admin1@example.com'/>
        <apps:property name='numberOfFiles' value='0'/>
        <apps:property name='requestId' value='the mailbox ID for this request'/>
   </entry>
   <entry>
        <id>>https://apps-apis.google.com/a/feeds/compliance/audit/mail/export/domain/second request ID</id>
        ...
        <apps:property name='status' value='COMPLETED'/>
        <apps:property name='packageContent' value='FULL_MESSAGE'/>
        <apps:property name='includeDeleted' value='false'/>
        <apps:property name='completedDate' value='2022-09-18 10:13'/>
        <apps:property name='adminEmailAddress' value='admin1@example.com'/>
        <apps:property name='numberOfFiles' value='0'/>
        <apps:property name='requestId' value='the mailbox ID for this request'/>
        <apps:property name='userEmailAddress' value='quinn@example.com'/>
        <apps:property name='endDate' value='2022-08-30 20:00'/>
        <apps:property name='requestDate' value='2022-09-17 12:51'/>
        <apps:property name='beginDate' value='2022-07-01 04:30'/>
   </entry>
</feed>

Java

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

AuditService service = new AuditService("admin@example.com", "p@55w0rd", "example.com", "example.com-auditapp-v1");
Calendar fromDate = Calendar.getInstance();
fromDate.set(2022, Calendar.AUGUST, 30, 21, 0);
List<GenericEntry> mailboxDumpRequestEntries = service.retrieveAllMailboxDumpRequests(fromDate.getTime());
for (GenericEntry entry : mailboxDumpRequestEntries) {
  MailBoxDumpRequest request = new MailBoxDumpRequest(entry);
  String status = request.getStatus();
}

.СЕТЬ

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<MailboxDumpRequest> dumpRequests = service.RetrieveAllMailboxDumpRequests(new DateTime(2022, 8, 30, 21, 0, 0);

Удаление зашифрованного почтового ящика

Для удаления зашифрованных файлов почтового ящика со статусом COMPLETED или MARKED_DELETED выполните HTTP-запрос DELETE к URI экспортируемого канала, указав requestId почтового ящика и заголовок Authorization .

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

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

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

Если в процессе удаления возникнут ошибки, будет возвращен статус MARKED_DELETE . Этот запрос будет автоматически удален заданием очистки Google в течение 24 часов. Однако для запроса со статусом MARKED_DELETE некоторые (или все) файлы почтового ящика могут оставаться доступными для загрузки. Если вы хотите убедиться, что файлы удалены, повторяйте эту операцию до тех пор, пока не будет возвращен статус DELETED . Если статус MARKED_DELETE возвращается постоянно, повторите попытку через экспоненциальные интервалы времени.

Пример удаления зашифрованного почтового ящика

В этом примере удаляется почтовый ящик пользователя quinn@example.com связанный с идентификатором requestId 34201 :

Протокол

DELETE https://apps-apis.google.com/a/feeds/compliance/audit/mail/export/example.com/quinn/34201

Java

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

AuditService service = new AuditService("admin@example.com", "p@55w0rd", "example.com", "example.com-auditapp-v1");
service.deleteMailboxDumpRequest("quinn", "34201");

.Сеть

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.DeleteMailboxDumpRequest("quinn", "34201");