הורדה של תיבת דואר

כאדמינים, אתם יכולים להוריד חשבונות תיבות דואר בדומיין שלכם למטרות ביקורת. כדי להכין תיבת דואר לייצוא, נוצר עותק מוצפן של תיבת הדואר של המשתמש ב-Email Audit API. המערכת מחזירה את כתובות ה-URL של קובצי תיבת הדואר המוצפנים, שזמינים בפורמט mbox כשמורידים ומפוענחים אותם.

המספר המקסימלי של בקשות ליצירת ייצוא של תיבות דואר ליום הוא מספר כולל של 100 בקשות מכל מנהלי הדומיינים. תהליך היצירה של תיבת הדואר יכול להימשך זמן רב, והוא עשוי להימשך כמה ימים, בהתאם לגודל תיבת הדואר.

קובצי תיבת הדואר המוצפנים נשמרים ב-Google למשך 3 שבועות, כך שכדאי להוריד את קובצי תיבת הדואר האלה בפרק הזמן הזה. בתום 30 הימים הם יימחקו. כדי למחוק את הקבצים האלה של תיבות הדואר לפני שפרק הזמן מסתיים, קראו את המאמר מחיקת תיבת דואר מוצפנת.

כדי להוריד תיבת דואר, מבצעים את הפעולות הבאות:

  • יצירה והעלאה של מפתח ציבורי – יצירת מפתח הצפנה ציבורי להורדת תיבות דואר. צריך לבצע את השלב הזה רק פעם אחת. אם כבר יצרתם מפתח ציבורי, אתם לא צריכים לבצע את השלב הזה לכל ייצוא של תיבת הדואר.
  • יוצרים גרסת ייצוא של תיבת הדואר של המשתמש – תהליך הייצוא של תיבות הדואר מתחיל כשמבקשים ליצור עותק של תיבת הדואר של המשתמש. ה-Email Audit API מאמת ומאשר את פרטי הכניסה ומחזיר מזהה בקשה ייחודי. תהליך היצירה של תיבת הדואר יכול להימשך זמן רב, והוא עשוי להימשך כמה ימים, בהתאם לגודל תיבת הדואר.
  • אחזור סטטוס ההורדה של תיבת הדואר – כדי לקבל את הסטטוס של הבקשה שבהמתנה, משתמשים במזהה הבקשה לייצוא של תיבת הדואר. אחרי שתיבת הדואר מועתקת ומוכנה לייצוא, התשובה מחזירה את הסטטוס COMPLETED יחד עם רשימת קובצי תיבת הדואר המוצפנים, ככתובות URL מסוג HTTP. משתמשים בקבוצת כתובות ה-URL הזו כדי להוריד את הקבצים של תיבות הדואר.
  • משיגים את קובצי תיבת הדואר שהורדתם – אחרי שמורידים את הקבצים המוצפנים, צריך לפענח את קובצי תיבת הדואר באמצעות המפתח הפרטי של הדומיין. אחרי הפענוח, הקבצים מוצגים בפורמט mbox.

יצירת מפתח ציבורי

כדי להוריד את תיבת הדואר, צריך להעלות מפתח הצפנה ציבורי של OpenPGP לדומיין. הפעולה הזו מתבצעת פעם אחת כשמגדירים את הורדת תיבת הדואר. תוכלו ליצור את זוג המפתחות הציבורי/הפרטי באמצעות תוכנה שתואמת ל-OpenPGP, כמו GNU Privacy Guard (GPG). מפתח ההצפנה הציבורי הזה צריך להיות מפתח RSA בפורמט PGP בקידוד ASCII.

כדי ליצור מפתח באמצעות GNU Privacy Guard, צריך לבצע את השלבים הבאים:

  1. מתקינים את GnuPG 1.4.

  2. יוצרים מפתח חדש:

    gpg --gen-key --expert
    
  3. כדי להגדיר יכולות משלכם, צריך לבחור באפשרות 8 ולשנות את ההגדרה של יכולת החתימה.

  4. כדי להשלים את תהליך יצירת המפתחות, צריך לאשר את כל אפשרויות ברירת המחדל. צריך להפעיל את פעולת ההצפנה במפתח הזה. אתם יכולים לכבות את פעולת הסימן כי הוא לא בשימוש.

  5. יש לייצא רק את המפתח של מזהה המשתמש שתואם ל-Google Workspace:

    • אם זו הפעם הראשונה שאתם משתמשים ב-GPG כדי ליצור מפתח, תצטרכו לייצא את המפתח היחיד שיצרתם:

      gpg --armor --export
      
    • אם כבר השתמשתם ב-GPG כדי ליצור מפתחות אחרים, יש לכם כמה מפתחות באוסף המפתחות. מקבלים רשימת מפתחות:

      gpg --list-keys
      

      אם מופיעים כמה מפתחות, צריך לציין את uid של המפתח שרוצים לייצא:

      gpg --armor --export KEY_UID
      
  6. מקודדים את המפתח בקידוד base64 באמצעות Motobit או בכלי אחר. חשוב להעתיק את כל השורות, כולל הכותרת, ולא להוסיף שורות נוספות. יש לקרוא את קובץ המפתח הציבורי באמצעות ערכת התווים US-ASCII, (IANA לשם charset השם המועדף ל-ASCII).

דוגמה

בדוגמה הבאה אפשר לראות איך להמיר מפתח ציבורי למחרוזת בקידוד 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>
    

יצירת עותק של תיבת דואר לייצוא

כדי להכין עותק של תיבת הדואר של המשתמש לייצוא ולהורדה, צריך להשתמש בפיד הייצוא של Email Audit 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.
  • הערך בעמודה packageContent הוא FULL_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>

בדוגמה הזו, העיבוד של תיבת הדואר הנכנס הושלם. המאפיין status הוא COMPLETED, וה-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();

‎.NET

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>

בדוגמה הזו מאחזרים את סטטוס תיבת הדואר שתואם ל34201 של requestId:

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

‎.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");
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: התאריך בקידוד כתובת ה-URL של בקשה מוצפנת בתיבת דואר בפורמט של זמן אוניברסלי מתואם (UTC). אם לא צוין fromDate בבקשה הזו ל-GET, מתבצע אחזור של כל הבקשות משלושת השבועות האחרונים.

בתגובה גדולה, כל דף תוצאות מחזיר 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();
}

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

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