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

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

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

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

כדי להוריד תיבת דואר:

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

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

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

כדי ליצור מפתח באמצעות GNU Privacy Guard:

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

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

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

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

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

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

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

      gpg --list-keys
      

      אם יש כמה מפתחות ברשימה, מציינים את uid של המפתח שרוצים לייצא:

      gpg --armor --export KEY_UID
      
  6. מקודדים את המפתח בקידוד base64 באמצעות Motobit או כלי אחר. חשוב להעתיק את כל השורות, כולל הכותרת, ולא להוסיף שורות נוספות. קובץ המפתח הציבורי צריך להיקרא עם ערכת התווים US-ASCII (שם ערכת התווים המועדף של IANA עבור 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>

בדוגמה הזו מתבצע אחזור של סטטוס תיבת הדואר שמשויך למזהה 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");

‎.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, כל הבקשות מ-3 השבועות האחרונים מאוחזרות.

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