برای تنظیم نظارت بر ایمیل با استفاده از API حسابرسی ایمیل، مدیر یک محدوده تاریخی را برای حسابرس تعیین میکند تا یک کپی از ایمیلهای ارسالی و دریافتی یک کاربر خاص را به عنوان پیوست دریافت کند. حداکثر تعداد درخواستهای ایجاد و حذف نظارت در هر روز ۱۰۰۰ درخواست است. این محدودیت برای هر دامنه است و شامل تمام درخواستهای انجام شده توسط هر مدیر در طول روز میشود.
یک سناریوی ایمیل تحت نظارت شامل سه نوع کاربر است:
مدیر - هر مدیر دامنه میتواند با استفاده از منبع مانیتور API حسابرسی ایمیل، یک مانیتور ایمیل ایجاد، بازیابی، بهروزرسانی و حذف کند. علاوه بر این، یک مدیر میتواند از API برای دانلود صندوق پستی استفاده کند. این عملیات فقط در دامنهای که مدیر بر آن کنترل دارد، قابل انجام است.
کاربر منبع - کاربر منبع، کاربری است که پیامهایی را که توسط کاربر مقصدِ ناظر، ممیزی میشوند، دریافت یا ارسال میکند. هر مدیر دامنه یا کاربر حساب کاربری میتواند کاربر منبع باشد. کاربر منبع باید در همان دامنهای باشد که مدیر و کاربر مقصد در آن قرار دارند.
کاربر مقصد - کاربر مقصد، حسابرسی است که پیامهای ایمیل حسابرسی شده را دریافت میکند.
- کپیهای کور (Bcc) از تمام ایمیلهای ورودی و خروجی، شامل پیوستهای ورودی و خروجی، پیامهای فوروارد شده و ایمیلهای ارسالی از دستگاههای تلفن همراه را دریافت میکند.
- به عنوان یک گزینه، مدیر دامنه میتواند ویژگیهای حسابرسی اضافی را برای کاربر مقصد فعال کند. ویژگیهای اختیاری شامل حسابرسی پیشنویسهای ایمیل ذخیره شده، حسابرسی چتهای بایگانی شده Hangouts با سایر کاربرانی است که میتوانند در داخل یا خارج از دامنه باشند.
- حتی اگر کاربر مقصد یک کپی Bcc از پیام را دریافت کند، ارتباط Bcc در هدرهای پیام که در حساب کاربر مبدا قابل دسترسی هستند، قابل مشاهده نیست.
- هر پیام ایمیل حسابرسی شده به عنوان یک پیوست ایمیل به کاربر مقصد ارسال میشود. و مدیر دامنه میتواند این پیامها را طوری پیکربندی کند که یا کل پیام ایمیل باشند یا فقط سرصفحههای پیام.
- این کاربر مقصد باید یک حساب ایمیل فعال در دامنه تحت نظارت داشته باشد. این باید همان دامنه مرتبط با مدیر و کاربر منبع باشد.
- کاربر مقصد میتواند مدیر یا کاربری در داخل دامنه باشد. و این کاربر مقصد میتواند نقشها را تغییر دهد و به یک کاربر مبدأ تبدیل شود که توسط کاربر مقصد دیگری حسابرسی میشود، که به نوبه خود، کپیهایی از تمام پیامهای ایمیل حسابرسی شده ارسال شده به کاربر مقصد اول را دریافت میکند.
- یک مدیر دامنه، یک مانیتور ایمیل ممیزی شده برای یک جفت منحصر به فرد «کاربر مقصد - کاربر منبع» ایجاد میکند. به عبارت دیگر، رابطه ممیزی، یک کاربر مقصد با یک کاربر منبع است. هر ممیزی با استفاده از یک منبع مانیتور API انجام میشود. با استفاده از چندین مانیتور API، یک کاربر مقصد میتواند بسیاری از کاربران را در دامنه ممیزی کند. و با استفاده از چندین مانیتور API، بسیاری از کاربران مقصد میتوانند یک کاربر منبع را ممیزی کنند.
- اگر یک مانیتور API اضافی ایجاد شود یا یک مانیتور API موجود برای جفت «کاربر مقصد - کاربر منبع» بهروزرسانی شود، مانیتوری که آخرین بار ایجاد شده است، جایگزین هر مانیتور از پیش موجود برای این جفت میشود. اساساً، اینگونه است که یک مانیتور API را بهروزرسانی میکنید. برای اطلاعات بیشتر در مورد بهروزرسانی یک مانیتور، به «بهروزرسانی مانیتور ایمیل» مراجعه کنید.
یک مانیتور ایمیل ایجاد کنید
برای ایجاد یک مانیتور ایمیل، درخواست POST زیر را با منبع مانیتور ایمیل ارسال کنید:
POST https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/DOMAIN_NAME/SOURCE_USERNAME
موارد زیر را جایگزین کنید:
-
DOMAIN_NAME: نام دامنه Google Workspace - برای مثال، example.com. -
SOURCE_USERNAME: نام کاربری که میخواهید مانیتور کنید.
درخواست POST شامل هدر Content-type زیر است:
Content-type: application/atom+xml
برای مشاهده لیست کامل پارامترهای مورد استفاده در درخواست مانیتور ایمیل، به Resources: monitor مراجعه کنید.
مثال برای ایجاد یک مانیتور جدید
مثال از پارامترهای زیر استفاده میکند:
- کاربری که قرار است حسابرسی شود
amal@example.comاست. -
destUserNameizumiاست. -
beginDateJune 15, 2022, 00:00 hoursاست. -
endDateJune 30, 2022, 23:20 hoursاست. - سطح مانیتور
incomingEmailMonitorLevelFULL_MESSAGEاست. -
outgoingEmailMonitorLevelHEADER_ONLYاست. - مقدار
draftMonitorLevelFULL_MESSAGEاست. - سطح
chatMonitorLevelFULL_MESSAGEاست.
پروتکل
POST https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal <atom:entry xmlns:atom='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'> <apps:property name='destUserName' value='izumi'/> <apps:property name='beginDate' value='2022-06-15 00:00'/> <apps:property name='endDate' value='2022-06-30 23:20'/> <apps:property name='incomingEmailMonitorLevel' value='FULL_MESSAGE'/> <apps:property name='outgoingEmailMonitorLevel' value='HEADER_ONLY'/> <apps:property name='draftMonitorLevel' value='FULL_MESSAGE'/> <apps:property name='chatMonitorLevel' value='FULL_MESSAGE'/> </atom:entry>
در صورت موفقیت، سرور کد وضعیت 201 CREATED و یک ورودی AtomPub را با عنصر entry که تنظیمات مانیتور جدید را نشان میدهد، برمیگرداند:
<entry xmlns:atom='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'> <id>https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/id</id> <updated>2022-04-17T15:02:45.646Z</updated/> <link rel='self' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/id'/> <link rel='edit' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/id'/> <apps:property name='destUserName' value='izumi'/> <apps:property name='beginDate' value='2022-06-15 00:00'/> <apps:property name='endDate' value='2022-06-30 23:20'/> <apps:property name='incomingEmailMonitorLevel' value='FULL_MESSAGE'/> <apps:property name='outgoingEmailMonitorLevel' value='HEADER_ONLY'/> <apps:property name='draftMonitorLevel' value='FULL_MESSAGE'/> <apps:property name='chatMonitorLevel' value='FULL_MESSAGE'/> </entry>
جاوا
import java.util.Calendar; import com.google.gdata.client.appsforyourdomain.audit.AuditService; import com.google.gdata.data.appsforyourdomain.generic.GenericEntry; import com.google.gdata.client.appsforyourdomain.audit.MailMonitor; ... MailMonitor monitor = new MailMonitor(); Calendar beginDate = Calendar.getInstance(); beginDate.set(2022, Calendar.JUNE, 15, 0, 0) monitor.setBeginDate(beginDate.getTime()); Calendar endDate = Calendar.getInstance(); endDate.set(2022, Calendar.JUNE, 30, 23, 20); monitor.setEndDate(endDate.getTime()); monitor.setIncomingEmailMonitorLevel("FULL_MESSAGE"); monitor.setOutgoingEmailMonitorLevel("HEADER_ONLY"); monitor.setDraftMonitorLevel("FULL_MESSAGE"); monitor.setChatMonitorLevel("FULL_MESSAGE"); monitor.setDestUserName("izumi"); AuditService service = new AuditService("admin@example.com", "p@55w0rd", "example.com", "example.com-auditapp-v1"); GenericEntry entry = service.createMailMonitor("amal", monitor);
دات نت
using System; using Google.GData.Apps; using Google.GData.Extensions.Apps; ... MailMonitor monitor = new MailMonitor(); monitor.BeginDate = new DateTime(2022, 6, 15); monitor.EndDate = new DateTime(2022, 6, 30, 23, 20, 0); monitor.IncomingEmailMonitorLevel = MonitorLevel.FULL_MESSAGE; monitor.OutgoingEmailMonitorLevel = MonitorLevel.HEADER_ONLY; monitor.DraftMonitorLevel = MonitorLevel.FULL_MESSAGE; monitor.ChatMonitorLevel = MonitorLevel.FULL_MESSAGE; monitor.DestinationUserName = "izumi"; AuditService service = new AuditService("example.com", "example.com-auditapp-v1"); service.setUserCredentials("admin@example.com", "p@55w0rd"); MailMonitor monitorEntry = service.CreateMailMonitor("amal", monitor);
بهروزرسانی مانیتور ایمیل
هنگام بهروزرسانی یک مانیتور با کاربر مبدا و کاربر مقصد یکسان، تنظیمات اولیهی ویژگی مانیتور با تنظیمات جدید جایگزین میشوند.
برای بهروزرسانی پیکربندی حسابرسی در یک مانیتور ایمیل، یک درخواست POST به URI فید مانیتور ارسال کنید و هدر Authorization اضافه کنید:
POST https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/DOMAIN_NAME/SOURCE_USERNAME
موارد زیر را جایگزین کنید:
-
DOMAIN_NAME: نام دامنه Google Workspace - برای مثال، example.com. -
SOURCE_USERNAME: نام کاربری مانیتور ایمیلی که میخواهید بهروزرسانی کنید.
مثال برای بهروزرسانی یک مانیتور ایمیل
این مثال، مانیتور ایجاد شده در مثال مربوط به ایجاد مانیتور ایمیل را با بهروزرسانی ویژگی الزامی endDate و ویژگی اختیاری chatMonitorLevel بهروزرسانی میکند. این مثال از پارامترهای زیر استفاده میکند:
-
endDateجدیدAugust 30, 2022, 23:20 hoursاست. - سطح
chatMonitorLevelاکنونHEADER_ONLYاست. - کاربری که قرار است حسابرسی شود، همچنان
amal@example.comاست. -
destUserNameهمچنانizumiاست.
ویژگیهای مانیتور که بهروزرسانی نشدهاند به مقادیر پیشفرض خود برمیگردند. برای مثال، در این مثال، ویژگیهای incomingEmailMonitorLevel و outgoingEmailMonitorLevel به FULL_MESSAGE و draftMonitorLevel به NONE برمیگردند.
پروتکل
POST https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal
<atom:entry xmlns:atom='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'>
<apps:property name='destUserName' value='izumi'/>
<apps:property name='endDate' value='2022-08-30 23:20'/>
<apps:property name='chatMonitorLevel' value='HEADER_ONLY'/>
</atom:entry> در صورت موفقیت، سرور کد وضعیت 201 CREATED و یک ورودی AtomPub با عناصر entry بهروزرسانیشده را برمیگرداند. ویژگیهایی که بهروزرسانی نشده و در پاسخ نشان داده نشدهاند، به مقادیر پیشفرض خود برمیگردند.
<entry> <entry xmlns='http://www.w3.org/2005/Atom' xmlns:apps='http://schemas.google.com/apps/2006'> <id>https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/izumi</id> <updated>2022-08-20T00:28:57.319Z</updated> <link rel='self' type='application/atom+xml' href="https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/izumi" /> <link rel='edit' type='application/atom+xml' href="https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/izumi" /> <apps:property name='chatMonitorLevel' value='HEADER_ONLY' /> <apps:property name='destUserName' value='izumi' /> <apps:property name='endDate' value='2022-08-30 23:20' /> </entry>
جاوا
import java.util.Calendar; import com.google.gdata.client.appsforyourdomain.audit.AuditService; import com.google.gdata.client.appsforyourdomain.audit.MailMonitor; import com.google.gdata.data.appsforyourdomain.generic.GenericEntry; ... MailMonitor monitor = new MailMonitor(); Calendar endDate = Calendar.getInstance(); endDate.set(2022, Calendar.AUGUST, 30, 23, 20); monitor.setEndDate(endDate.getTime()); monitor.setChatMonitorLevel("HEADER_ONLY"); monitor.setDestUserName("izumi"); AuditService service = new AuditService("admin@example.com", "p@55w0rd", "example.com", "example.com-auditapp-v1"); GenericEntry entry = service.createMailMonitor("amal", monitor);
دات نت
using System; using Google.GData.Apps; using Google.GData.Extensions.Apps; ... MailMonitor monitor = new MailMonitor(); monitor.EndDate = new DateTime(2022, 8, 30, 23, 20, 0); monitor.ChatMonitorLevel = MonitorLevel.HEADER_ONLY; monitor.DestinationUserName = "izumi"; AuditService service = new AuditService("example.com", "example.com-auditapp-v1"); service.setUserCredentials("admin@example.com", "p@55w0rd"); MailMonitor monitorEntry = service.CreateMailMonitor("amal", monitor);
بازیابی تمام مانیتورهای ایمیل یک کاربر منبع
برای بازیابی تمام مانیتورهای مرتبط با یک کاربر منبع، یک درخواست HTTP GET به URI فید مانیتور ارسال کنید، با استفاده از فرمت UTC برای تاریخ، و هدر Authorization را اضافه کنید:
GET https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/DOMAIN_NAME/SOURCE_USERNAME
موارد زیر را جایگزین کنید:
-
DOMAIN_NAME: نام دامنه Google Workspace - برای مثال، example.com. -
SOURCE_USERNAME: نام کاربری مانیتور ایمیلی که میخواهید بازیابی کنید.
این عملیات هیچ پارامتری در بدنه درخواست ندارد، بنابراین بدنه XML خالی است.
مثال برای بازیابی همه مانیتورهای ایمیل
این مثال تمام مانیتورهای ایجاد شده برای کاربر amal@example.com را بازیابی میکند:
پروتکل
GET https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal
در صورت موفقیت، سرور کد وضعیت 201 CREATED و یک فید AtomPub با عناصر entry برای دو مانیتور که تنظیمات دو کاربر مقصد ( izumi@example.com, taylor@example.com ) را نشان میدهد، برمیگرداند.
<feed xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:apps='http://schemas.google.com/apps/2006'> <id>https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal</id> <updated>2010-03-17T15:29:21.064Z</updated> <link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal'/> <link rel='http://schemas.google.com/g/2005#post' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal'/> <link rel='self' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal'/> <openSearch:startIndex>1</openSearch:startIndex> <entry> <id>https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/izumi</id> <updated>2022-04-17T15:29:21.064Z</updated> <link rel='self' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/izumi&'/> <link rel='edit' type='application/atom+xml' href='https://apps-apis.google.com/feeds/compliance/audit/mail/monitor/example.com/amal/izumi&'/> <apps:property name='requestId' value='53156'/> <apps:property name='destUserName' value='izumi'/> <apps:property name='beginDate' value='2022-06-15 00:00'/> <apps:property name='endDate' value='2022-06-30 23:20'/> <apps:property name='incomingEmailMonitorLevel' value='FULL_MESSAGE'/> <apps:property name='outgoingEmailMonitorLevel' value='FULL_MESSAGE'/> <apps:property name='draftMonitorLevel' value='FULL_MESSAGE'/> <apps:property name='chatMonitorLevel' value='FULL_MESSAGE'/> </entry> <entry> <id>>https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/taylor</id> <updated>2022-05-17T15:29:21.064Z</updated> <link rel='self' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/taylor'/> <link rel='edit' type='application/atom+xml' href='https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/taylor'/> <apps:property name='requestId' value='22405'/> <apps:property name='destUserName' value='taylor'/> <apps:property name='beginDate' value='2022-06-20 00:00'/> <apps:property name='endDate' value='2022-07-30 23:20'/> <apps:property name='incomingEmailMonitorLevel' value='FULL_MESSAGE'/> <apps:property name='outgoingEmailMonitorLevel' value='FULL_MESSAGE'/> <apps:property name='draftMonitorLevel' value='FULL_MESSAGE'/> <apps:property name='chatMonitorLevel' value='FULL_MESSAGE'/> </entry> </feed>
جاوا
import com.google.gdata.client.appsforyourdomain.audit.AuditService; import com.google.gdata.data.appsforyourdomain.generic.GenericFeed; ... AuditService service = new AuditService("admin@example.com", "p@55w0rd", "example.com", "example.com-auditapp-v1"); GenericFeed feed = service.retrieveMonitors("amal");
دات نت
using System; using System.Collections.Generic; using Google.GData.Apps; using Google.GData.Extensions.Apps; ... AuditService service = new AuditService("example.com", "example.com-auditapp-v1"); service.setUserCredentials("admin@example.com", "p@55w0rd"); GenericFeed<MailMonitor> monitors = service.RetrieveMailMonitors("amal");
حذف یک مانیتور ایمیل
برای حذف یک مانیتور ایمیل، یک درخواست HTTP DELETE به آدرس اینترنتی (URI) حذف فید مانیتور ارسال کنید و هدر Authorization را نیز در آن قرار دهید:
DELETE https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/DOMAIN_NAME/SOURCE_USERNAME/DESTINATION_USERNAME
موارد زیر را جایگزین کنید:
-
DOMAIN_NAME: نام دامنه Google Workspace - برای مثال، example.com. -
SOURCE_USERNAME: نام کاربری مانیتور ایمیلی که میخواهید حذف کنید. -
DESTINATION_USERNAME: حسابرسی که پیامهای ایمیل حسابرسیشده را دریافت میکند.
مثال برای حذف مانیتور ایمیل
این مثال مانیتورهای ایجاد شده برای کاربر amal@example.com با destinationUserName به صورت izumi را حذف میکند.
پروتکل
DELETE https://apps-apis.google.com/a/feeds/compliance/audit/mail/monitor/example.com/amal/izumi
جاوا
import com.google.gdata.client.appsforyourdomain.audit.AuditService; ... AuditService service = new AuditService("admin@example.com", "p@55w0rd", "example.com", "example.com-auditapp-v1"); service.deleteMonitor("amal", "izumi");
دات نت
using System; using Google.GData.Apps; using Google.GData.Extensions.Apps; ... AuditService service = new AuditService("example.com", "example.com-auditapp-v1"); service.setUserCredentials("admin@example.com", "p@55w0rd"); service.DeleteMailMonitor("amal", "izumi");