Supervisar los correos electrónicos

Para configurar la supervisión de correos electrónicos 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 supervisores por día es de 1,000. Este límite se aplica por dominio y abarca todas las solicitudes que realice cualquier administrador durante el día.

Una situación de correo electrónico supervisada 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. Estas operaciones solo se pueden realizar dentro del dominio sobre el que el administrador ejerce control.

  • Usuario fuente: Es el usuario que recibe o envía mensajes que audita el usuario de destino de la supervisión. Cualquier administrador de dominio o usuario de la cuenta puede ser un usuario fuente. 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 (CCO) 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 los borradores de correos electrónicos guardados y la auditoría de los chats archivados de Hangouts con otros usuarios que pueden estar dentro o fuera del dominio.
    • Aunque el usuario de destino recibe una copia Cco del mensaje, la asociación Cco no se ve en los encabezados del mensaje 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.
    • El 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 fuente.
    • Un usuario de destino puede ser un administrador o un usuario dentro del dominio. Además, este usuario de destino puede cambiar de rol y convertirse en usuario fuente auditado por 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 supervisión de la API. Con varios monitores de API, un usuario de destino puede auditar a muchos usuarios del dominio. Además, con varios monitores de API, muchos usuarios de destino pueden auditar a un usuario fuente.
    • Si se crea un monitor de API adicional o se actualiza uno existente para un par "usuario de destino - usuario de origen", el monitor que se creó más recientemente 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 Actualiza 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 del 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 del dominio de Google Workspace, por ejemplo, example.com.
  • SOURCE_USERNAME: Es 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 por 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.

Protocolo

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 la operación se realiza correctamente, el servidor devuelve 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>

Java

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

.NET

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 propiedades del monitor inicial se reemplaza por la nueva configuración.

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 del dominio de Google Workspace, por ejemplo, example.com.
  • SOURCE_USERNAME: Es 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 supervisor creado en el ejemplo para crear un supervisor 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.
  • El chatMonitorLevel ahora es HEADER_ONLY.
  • El usuario que se auditará sigue siendo amal@example.com.
  • El 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 la propiedad draftMonitorLevel vuelve a NONE.

Protocolo

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 la operación se realiza correctamente, el servidor devuelve un código de estado 201 CREATED y una entrada de AtomPub con los elementos entry actualizados. Las propiedades que no se actualizaron y que 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>

Java

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

.NET

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

Recupera todos los monitores de correo electrónico de un usuario fuente

Para recuperar todos los monitores asociados a un usuario fuente, realiza una solicitud HTTP GET al URI del feed de monitores, 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 del 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 supervisores de correo electrónico

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

Protocolo

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

Si la operación se realiza correctamente, el servidor devuelve un código de estado 201 CREATED y un feed de 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>

Java

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

.NET

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

Borra 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 del 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: Es 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.

Protocolo

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

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.deleteMonitor("amal", "izumi");

.NET

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