Supervisar los correos electrónicos

Para configurar la supervisión de correo electrónico con la API de Email Audit, un administrador establece un período para que el auditor reciba una copia de los correos electrónicos enviados y recibidos de un usuario en particular como archivo adjunto. La cantidad máxima de solicitudes de creación y eliminación de monitores por día es de 1,000. Este límite es por dominio y incluye todas las solicitudes que realiza cualquier administrador durante el día.

Una situación de correo electrónico supervisado incluye tres tipos de usuarios:

  • Administrador: Cualquier administrador de dominio puede crear, recuperar, actualizar y borrar un monitor de correo electrónico con el recurso de monitor de la API de Email Audit. Además, un administrador puede usar la API para descargar el buzón de correo. Estas operaciones solo se pueden realizar dentro del dominio sobre el que el administrador ejerce control.

  • Usuario de origen: Es el usuario que recibe o envía los mensajes que audita el usuario de destino de supervisión. Cualquier administrador de dominio o usuario de la cuenta puede ser un usuario de origen. El usuario de origen debe estar en el mismo dominio que el administrador y el usuario de destino.

  • Usuario de destino: El usuario de destino es el auditor que recibe los mensajes de correo electrónico auditados.

    • Recibe copias ocultas (Cc) de todos los mensajes de correo electrónico entrantes y salientes, incluidos los archivos adjuntos entrantes y salientes, los mensajes reenviados y los mensajes de correo electrónico enviados desde dispositivos móviles.
    • Como opción, un administrador de dominio puede habilitar funciones de auditoría adicionales para el usuario de destino. Las funciones opcionales incluyen la auditoría de borradores de correos electrónicos guardados y la auditoría de chats archivados de Hangouts con otros usuarios que pueden estar dentro o fuera del dominio.
    • Aunque el usuario de destino recibe una copia de Cco del mensaje, la asociación de Cco no es visible en los encabezados de los mensajes a los que se puede acceder en la cuenta del usuario de origen.
    • Cada mensaje de correo electrónico auditado se envía al usuario de destino como archivo adjunto. Además, el administrador del dominio puede configurar estos mensajes para que sean el mensaje de correo electrónico completo o solo los encabezados del mensaje.
    • Este usuario de destino debe tener una cuenta de correo electrónico activa en el dominio supervisado. Debe ser el mismo dominio asociado con el administrador y el usuario de origen.
    • Un usuario de destino puede ser un administrador o un usuario dentro del dominio. Además, este usuario de destino puede cambiar de rol para convertirse en un usuario de origen que audita otro usuario de destino que, a su vez, recibe copias de todos los mensajes de correo electrónico auditados que se envían al primer usuario de destino.
    • Un administrador de dominio crea un monitor de correo electrónico auditado para un par único de "usuario de destino - usuario de origen". En otras palabras, la relación de auditoría es de un usuario de destino a un usuario de origen. Cada auditoría se realiza con un recurso de monitor de API. Con varios monitores de API, un usuario de destino puede auditar a muchos usuarios en el dominio. Además, con varios monitores de API, muchos usuarios de destino pueden auditar un usuario de origen.
    • Si se crea un monitor de API adicional o se actualiza un monitor de API existente para un par "usuario de destino - usuario de origen", el monitor que se creó por último reemplaza a cualquier monitor preexistente para este par. Básicamente, así es como se actualiza un monitor de API. Para obtener más información sobre cómo actualizar un monitor, consulta Cómo actualizar un monitor de correo electrónico.

Crea un supervisor de correo electrónico

Para crear un monitor de correo electrónico, envía la siguiente solicitud POST con el recurso de monitor de correo electrónico:

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

Reemplaza lo siguiente:

  • DOMAIN_NAME: Es el nombre de dominio de Google Workspace, por ejemplo, example.com.
  • SOURCE_USERNAME: El nombre de usuario que deseas supervisar.

La solicitud POST contiene el siguiente encabezado Content-type:

Content-type: application/atom+xml

Para obtener una lista completa de los parámetros que se pueden usar en una solicitud de supervisión de correo electrónico, consulta Recursos: monitor.

Ejemplo para crear un monitor nuevo

En el ejemplo, se usan los siguientes parámetros:

  • El usuario que se auditará es amal@example.com.
  • La destUserName es izumi.
  • La beginDate es June 15, 2022, 00:00 hours.
  • La endDate es June 30, 2022, 23:20 hours.
  • La incomingEmailMonitorLevel es FULL_MESSAGE.
  • La outgoingEmailMonitorLevel es HEADER_ONLY.
  • La draftMonitorLevel es FULL_MESSAGE.
  • La chatMonitorLevel es 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>

Si se realiza correctamente, el servidor muestra un código de estado 201 CREATED y una entrada de AtomPub con el elemento entry que muestra la nueva configuración del monitor:

<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);

Actualiza un supervisor de correo electrónico

Cuando se actualiza un monitor con el mismo usuario de origen y el mismo usuario de destino, la configuración de la propiedad del monitor inicial se reemplaza por la nueva.

Para actualizar la configuración de auditoría en un monitor de correo electrónico, envía una solicitud POST al URI del feed del monitor y, luego, incluye el encabezado Authorization:

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

Reemplaza lo siguiente:

  • DOMAIN_NAME: Es el nombre de dominio de Google Workspace, por ejemplo, example.com.
  • SOURCE_USERNAME: El nombre de usuario del monitor de correo electrónico que deseas actualizar.

Ejemplo para actualizar un monitor de correo electrónico

En este ejemplo, se actualiza el monitor creado en el ejemplo para crear un monitor de correo electrónico actualizando la propiedad obligatoria endDate y la propiedad opcional chatMonitorLevel. En este ejemplo, se usan los siguientes parámetros:

  • El nuevo endDate es August 30, 2022, 23:20 hours.
  • chatMonitorLevel ahora es HEADER_ONLY.
  • El usuario que se auditará sigue siendo amal@example.com.
  • destUserName sigue siendo izumi.

Las propiedades del monitor que no se actualizaron volverán a sus valores predeterminados. Por ejemplo, en este ejemplo, las propiedades incomingEmailMonitorLevel y outgoingEmailMonitorLevel vuelven a FULL_MESSAGE, y draftMonitorLevel vuelve a 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>

Si se realiza correctamente, el servidor muestra un código de estado 201 CREATED y una entrada de AtomPub con los elementos entry actualizados. Las propiedades que no se actualizaron y se muestran en la respuesta vuelven a sus valores predeterminados.

<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);

Cómo recuperar todos los monitores de correo electrónico de un usuario de origen

Para recuperar todos los monitores asociados con un usuario de origen, realiza una solicitud HTTP GET al URI del feed de monitor, usa el formato UTC para la fecha y, luego, incluye el encabezado Authorization:

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

Reemplaza lo siguiente:

  • DOMAIN_NAME: Es el nombre de dominio de Google Workspace, por ejemplo, example.com.
  • SOURCE_USERNAME: Es el nombre de usuario del monitor de correo electrónico que deseas recuperar.

Esta operación no tiene parámetros en el cuerpo de la solicitud, por lo que el cuerpo XML está vacío.

Ejemplo para recuperar todos los monitores de correo electrónico

En este ejemplo, se recuperan todos los monitores creados para el usuario amal@example.com:

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

Si se realiza correctamente, el servidor muestra un código de estado 201 CREATED y un feed AtomPub con los elementos entry para dos monitores que muestran la configuración de dos usuarios de destino (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");

Cómo borrar un supervisor de correo electrónico

Para borrar un monitor de correo electrónico, realiza una solicitud HTTP DELETE al URI de eliminación del feed del monitor y, luego, incluye el encabezado Authorization:

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

Reemplaza lo siguiente:

  • DOMAIN_NAME: Es el nombre de dominio de Google Workspace, por ejemplo, example.com.
  • SOURCE_USERNAME: Es el nombre de usuario del monitor de correo electrónico que deseas borrar.
  • DESTINATION_USERNAME: El auditor que recibe los mensajes de correo electrónico auditados.

Ejemplo para borrar un supervisor de correo electrónico

En este ejemplo, se borran los monitores creados para el usuario amal@example.com con destinationUserName como 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");