یک صندوق پستی را دانلود کنید

به عنوان یک سرپرست، می توانید حساب های صندوق پستی را در دامنه خود برای اهداف ممیزی دانلود کنید. برای آماده کردن یک صندوق پستی برای صادرات، API حسابرسی ایمیل یک کپی رمزگذاری شده از صندوق پستی کاربر ایجاد می کند. این سیستم آدرس‌های اینترنتی فایل‌های صندوق پستی رمزگذاری شده را برمی‌گرداند که پس از دانلود و رمزگشایی، در قالب mbox در دسترس هستند.

حداکثر درخواست ایجاد صادرات صندوق پستی در روز در مجموع 100 درخواست از همه مدیران دامنه است. فرآیند ایجاد صندوق پستی ممکن است زمان‌بر باشد و بسته به اندازه صندوق پستی ممکن است چندین روز طول بکشد.

Google فایل های صندوق پستی رمزگذاری شده را به مدت 3 هفته حفظ می کند، بنابراین مطمئن شوید که این فایل های صندوق پستی را در این بازه زمانی دانلود کنید. پس از آن زمان، آنها حذف می شوند. برای حذف این فایل‌های صندوق پستی قبل از اتمام دوره زمانی، به حذف یک صندوق پستی رمزگذاری شده مراجعه کنید.

برای دانلود صندوق پستی، موارد زیر را انجام دهید:

  • ایجاد و بارگذاری یک کلید عمومی — یک کلید رمزگذاری عمومی برای بارگیری صندوق های پستی ایجاد کنید. این مرحله فقط باید یک بار انجام شود. اگر قبلاً یک کلید عمومی ایجاد کرده اید، لازم نیست این مرحله را برای هر صادرات صندوق پستی تکمیل کنید.
  • ایجاد یک نسخه صادراتی از صندوق پستی کاربر — فرآیند صادرات صندوق پستی زمانی شروع می شود که شما درخواست ایجاد یک کپی از صندوق پستی کاربر را دارید. Email Audit API اعتبار شما را تأیید و مجوز می دهد و یک شناسه درخواست منحصر به فرد را برمی گرداند. فرآیند ایجاد صندوق پستی ممکن است زمان‌بر باشد و بسته به اندازه صندوق پستی ممکن است چندین روز طول بکشد.
  • بازیابی وضعیت بارگیری صندوق پستی — از شناسه درخواست صادرات صندوق پستی برای دریافت وضعیت درخواست در حال انتظار استفاده کنید. پس از اینکه صندوق پستی کپی شد و برای صادرات آماده شد، پاسخ وضعیت COMPLETED را به همراه فهرست فایل های صندوق پستی رمزگذاری شده به عنوان URL های HTTP برمی گرداند. از این مجموعه URL ها برای دانلود فایل های صندوق پستی استفاده کنید.
  • دریافت فایل های صندوق پستی دانلود شده — پس از دانلود فایل های رمزگذاری شده، فایل های صندوق پستی را با استفاده از کلید خصوصی دامنه رمزگشایی کنید. پس از رمزگشایی، فایل ها در قالب mbox مشاهده می شوند.

یک کلید عمومی تولید کنید

قبل از اینکه بتوانید صندوق پستی را دانلود کنید، باید یک کلید رمزگذاری عمومی OpenPGP برای دامنه آپلود کنید. این مرحله هنگام تنظیم بارگیری صندوق پستی یک بار انجام می شود. می‌توانید جفت کلید عمومی/خصوصی را با استفاده از هر نرم‌افزار سازگار با OpenPGP، مانند GNU Privacy Guard (GPG) ایجاد کنید. این کلید رمزگذاری عمومی باید یک کلید RSA با فرمت PGP با کدگذاری ASCII باشد.

برای ایجاد یک کلید با گنو 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 برای 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>
    

یک کپی از یک صندوق پستی برای صادرات ایجاد کنید

برای تهیه یک کپی از صندوق پستی کاربر برای صادرات و دانلود، از فید صادراتی 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 که برای صادرات بازگردانده می شود دو است.

جاوا

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
فایل‌های صندوق پستی پس از محدودیت 3 هفته‌ای نگهداری توسط Google حذف شدند.

مثالی برای بازیابی وضعیت صادرات یک صندوق پستی

این مثال وضعیت صندوق پستی مربوط به 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>

جاوا

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 : تاریخ کدگذاری شده با 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>

جاوا

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

جاوا

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

به عنوان یک سرپرست، می توانید حساب های صندوق پستی را در دامنه خود برای اهداف ممیزی دانلود کنید. برای آماده کردن یک صندوق پستی برای صادرات، API حسابرسی ایمیل یک کپی رمزگذاری شده از صندوق پستی کاربر ایجاد می کند. این سیستم آدرس‌های اینترنتی فایل‌های صندوق پستی رمزگذاری شده را برمی‌گرداند که پس از دانلود و رمزگشایی، در قالب mbox در دسترس هستند.

حداکثر درخواست ایجاد صادرات صندوق پستی در روز در مجموع 100 درخواست از همه مدیران دامنه است. فرآیند ایجاد صندوق پستی ممکن است زمان‌بر باشد و بسته به اندازه صندوق پستی ممکن است چندین روز طول بکشد.

Google فایل های صندوق پستی رمزگذاری شده را به مدت 3 هفته حفظ می کند، بنابراین مطمئن شوید که این فایل های صندوق پستی را در این بازه زمانی دانلود کنید. پس از آن زمان، آنها حذف می شوند. برای حذف این فایل‌های صندوق پستی قبل از اتمام دوره زمانی، به حذف یک صندوق پستی رمزگذاری شده مراجعه کنید.

برای دانلود صندوق پستی، موارد زیر را انجام دهید:

  • ایجاد و بارگذاری یک کلید عمومی — یک کلید رمزگذاری عمومی برای بارگیری صندوق های پستی ایجاد کنید. این مرحله فقط باید یک بار انجام شود. اگر قبلاً یک کلید عمومی ایجاد کرده اید، لازم نیست این مرحله را برای هر صادرات صندوق پستی تکمیل کنید.
  • ایجاد یک نسخه صادراتی از صندوق پستی کاربر — فرآیند صادرات صندوق پستی زمانی شروع می شود که شما درخواست ایجاد یک کپی از صندوق پستی کاربر را دارید. Email Audit API اعتبار شما را تأیید و مجوز می دهد و یک شناسه درخواست منحصر به فرد را برمی گرداند. فرآیند ایجاد صندوق پستی ممکن است زمان‌بر باشد و بسته به اندازه صندوق پستی ممکن است چندین روز طول بکشد.
  • بازیابی وضعیت بارگیری صندوق پستی — از شناسه درخواست صادرات صندوق پستی برای دریافت وضعیت درخواست در حال انتظار استفاده کنید. پس از اینکه صندوق پستی کپی شد و برای صادرات آماده شد، پاسخ وضعیت COMPLETED را به همراه فهرست فایل های صندوق پستی رمزگذاری شده به عنوان URL های HTTP برمی گرداند. از این مجموعه URL ها برای دانلود فایل های صندوق پستی استفاده کنید.
  • دریافت فایل های صندوق پستی دانلود شده — پس از دانلود فایل های رمزگذاری شده، فایل های صندوق پستی را با استفاده از کلید خصوصی دامنه رمزگشایی کنید. پس از رمزگشایی، فایل ها در قالب mbox مشاهده می شوند.

یک کلید عمومی تولید کنید

قبل از اینکه بتوانید صندوق پستی را دانلود کنید، باید یک کلید رمزگذاری عمومی OpenPGP برای دامنه آپلود کنید. این مرحله هنگام تنظیم بارگیری صندوق پستی یک بار انجام می شود. می‌توانید جفت کلید عمومی/خصوصی را با استفاده از هر نرم‌افزار سازگار با OpenPGP، مانند GNU Privacy Guard (GPG) ایجاد کنید. این کلید رمزگذاری عمومی باید یک کلید RSA با فرمت PGP با کدگذاری ASCII باشد.

برای ایجاد یک کلید با گنو 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 برای 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>
    

یک کپی از یک صندوق پستی برای صادرات ایجاد کنید

برای تهیه یک کپی از صندوق پستی کاربر برای صادرات و دانلود، از فید صادراتی 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 که برای صادرات بازگردانده می شود دو است.

جاوا

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
فایل‌های صندوق پستی پس از محدودیت 3 هفته‌ای نگهداری توسط Google حذف شدند.

مثالی برای بازیابی وضعیت صادرات یک صندوق پستی

این مثال وضعیت صندوق پستی مربوط به 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>

جاوا

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 : تاریخ کدگذاری شده با 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>

جاوا

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

جاوا

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