المقدمة

يوضح هذا المستند كيفية أتمتة إدارة الرسائل والإصدار على Cisco SMA عبر واجهة برمجة تطبيقات REST لمعالجة كميات كبيرة من الرسائل.

المتطلبات الأساسية

المتطلبات

توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:

- معرفة منتجات Cisco SMA

- التعرف على أساسيات REST API، و PostMan، و Curl، و JQ لمعالجة JSON

- بيانات اعتماد صالحة للوصول إلى SMA API

- سطر الأوامر

- وصول الشبكة إلى SMA

- الأدوات المثبتة: كيرل (للطلبات)، JQ (للمعالجة باستخدام JSON)، وزبون مثل ساعي البريد للاختبارات الأولية

- دور المستخدم المناسب في SMA لتنفيذ إجراءات إصدار الرسالة

المكونات المستخدمة

لا يقتصر هذا المستند على إصدارات برامج ومكونات مادية معينة.

تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.

معلومات أساسية

يعد أتمتة إصدار الرسائل أمرا ضروريا للبيئات التي تحتوي على نسبة كبيرة من رسائل البريد الإلكتروني. باستخدام واجهة برمجة التطبيقات (API)، يمكن للمسؤولين تصفية رسائل معينة (على سبيل المثال، بواسطة المرسل) والإفراج عنها برمجيا، مما يقلل وقت التشغيل وخطر الأخطاء البشرية مقارنة بالإدارة اليدوية في واجهة المستخدم الرسومية (GUI).

إختبار أولي

لإدارة العزل، ابدأ بإجراء استعلام أولي للتحقق من الاتصال وتأكيد بنية البيانات.

https://dhxyz-sma2.iphmx.com/sma/api/v2.0/quarantine/messages?quarantineType=pvo&quarantines=TEST_QUARANTINE&limit=25&offset=0&orderBy=received&orderDir=desc&startDate=2026-03-15T00:00:00.000Z&endDate=2026-03-16T00:00:00.000Z

بنية البيانات

- نقطة نهاية واجهة برمجة التطبيقات: عنوان URL الأساسي لواجهة برمجة تطبيقات SMA (على سبيل المثال، https://dhxyz-sma2.iphmx.com/sma/api/v2.0/quarantine/messages).

- اسم العزل: معرف العزل الخاص ب PVO (على سبيل المثال، TEST_QUARANTINE) الذي ترغب في إسترداد الرسائل منه.

- نطاق التاريخ: يستخدم تاريخ البدء وتاريخ الانتهاء لتحديد الإطار الزمني المحدد للبحث.

- الحد: الحد الأقصى لعدد السجلات التي سيتم إرجاعها في إستجابة واجهة برمجة تطبيقات (API) واحدة. يساعد ذلك على إدارة حجم الحمولة ومنع حالات انتهاء المهلة الزمنية عند التعامل مع قوائم الانتظار الكبيرة.

- الإزاحة: فهرس بدء مجموعة النتائج. هذا يستخدم للترقيم؛ على سبيل المثال، فإن تعيين إزاحة بمقدار 25 يتخطى أول 25 رسالة، مما يتيح لك إسترداد الدفعة التالية من النتائج.

التحقق من النتائج باستخدام كل من واجهة المستخدم الرسومية (GUI) وواجهة برمجة التطبيقات (API)

عند إسترداد المعلومات، يمكنك رؤية نفس كمية الرسائل في إستدعاء API وفي واجهة المستخدم الرسومية (GUI).

طلب GET الخاص بسجل البريد

رسائل TEST_QUARANTINE

الاختبار الأولي مع CURL

إنشاء رمز مصادقة Base64 المميز لرأس التخويل:

echo -n 'username:password' | base64

إسترداد كافة الرسائل

قم بتنفيذ طلب إعادة التوجيه لاستخراج الرسائل إلى ملف محلي:

curl -X GET "https://dhxyz-sma2.iphmx.com/sma/api/v2.0/quarantine/messages?quarantineType=pvo&quarantines=TEST_QUARANTINE&limit=25&offset=0&orderBy=received&orderDir=desc&startDate=2026-03-15T00:00:00.000Z&endDate=2026-03-16T00:00:00.000Z" \

-H "Authorization: Basic token-generated-in-base64" \

-H "Accept: application/json" \

-o response.json

التحقق من العدد الإجمالي

تحقق من العدد الإجمالي للرسائل التي تم تلقيها:

$ grep "totalCount" response.json | awk '{ print $2, $3}'

{"totalCount": 24},

تصفية MIDs لكل مجال

أستخدم JQ لتصفية MIDs للرسائل التي تريد إصدارها (على سبيل المثال، التصفية حسب المجال).

$ jq '[.data[] | select(.attributes.sender | endswith("@labcisco.com")) | .mid]' response.json > mids-labcisco-domain.json

$ cat mids-labcisco-domain.json

[

440,

439,

438,

437,

436,

435,

434,

433,

425,

414

]

يمكن أن يتطابق عدد MIDs إذا قمت بإجراء بحث في TEST_QUARANTINE في واجهة المستخدم الرسومية ل SMA.

تفتيش العزل

نتائج العزل

تصفية MIDs وإنشاء حمولة

قم بتصفية MIDs وإنشاء ملف الحمولة.

$ jq '{action:"release", quarantineType:"pvo", quarantineName:"TEST_QUARANTINE", mids:[.data[] | select(.attributes.sender | endswith("@labcisco.com")) | .mid]}' response.json > payload.json

$ cat payload.json

{

"action": "release",

"quarantineType": "pvo",

"quarantineName": "TEST_QUARANTINE",

"mids": [

440,

439,

438,

437,

436,

435,

434,

433,

425,

414

]

}

تنفيذ الإصدار (POST)

إرسال طلب الإصدار إلى SMA:

$ curl -X POST "https://dhxyz-sma2.iphmx.com/sma/api/v2.0/quarantine/messages" \

-H "Authorization: Basic token-generated-in-base64" \

-H "Content-Type: application/json" \

-d @payload.json

{"data": {"action": "release", "totalCount": 10}}

التحقق من النتائج

التحقق من سجلات_البريد

عند التحقق من mail_log للرسائل التي تم إصدارها، يمكنك تصفية رسائل GREP "release" mail_log ونفس بطاقات MID التي تقوم بتصفيتها أعلاه، نفس تلك التي تم إصدارها.

Sun Mar 15 11:48:21 2026 Info: MID 436 released from quarantine "TEST_QUARANTINE" (manual) t=1393

Sun Mar 15 11:48:21 2026 Info: MID 425 released from quarantine "TEST_QUARANTINE" (manual) t=1411

Sun Mar 15 11:48:21 2026 Info: MID 414 released from quarantine "TEST_QUARANTINE" (manual) t=2787

Sun Mar 15 11:48:21 2026 Info: MID 433 released from quarantine "TEST_QUARANTINE" (manual) t=1397

Sun Mar 15 11:48:21 2026 Info: MID 440 released from quarantine "TEST_QUARANTINE" (manual) t=1387

Sun Mar 15 11:48:21 2026 Info: MID 439 released from quarantine "TEST_QUARANTINE" (manual) t=1388

Sun Mar 15 11:48:21 2026 Info: MID 434 released from quarantine "TEST_QUARANTINE" (manual) t=1396

Sun Mar 15 11:48:21 2026 Info: MID 437 released from quarantine "TEST_QUARANTINE" (manual) t=1391

Sun Mar 15 11:48:21 2026 Info: MID 435 released from quarantine "TEST_QUARANTINE" (manual) t=1395

Sun Mar 15 11:48:21 2026 Info: MID 438 released from quarantine "TEST_QUARANTINE" (manual) t=1390

التحقق مباشرة في واجهة المستخدم الرسومية

إذا قمت بنفس البحث للمجال الذي قمت بإطلاقه، فسترى أن البحث لا يحتوي على نتائج، نظرا لأنه تم إصدار كافة الرسائل.

عزل النتائج الجديدة

التحقق من إستخدام API

ساعي البريد

قم بإعادة تشغيل الأمر get من إسترداد جميع الرسائل للتأكد من انخفاض totalCount أو عدم وجود منافذ MID معينة بعد الآن.

استعلام GET لساعي البريد

كيرل

$ curl -X GET "https://dhxyz-sma2.iphmx.com/sma/api/v2.0/quarantine/messages?quarantineType=pvo&quarantines=TEST_QUARANTINE&limit=25&offset=0&orderBy=received&orderDir=desc&startDate=2026-03-12T00:00:00.000Z&endDate=2026-03-14T00:00:00.000Z" \

-H "Authorization: Basic token-generated-in-base64" \

-H "Accept: application/json" \

-o response.json

$ jq '[.data[] | select(.attributes.sender | endswith("@labcisco.com")) | .mid]' response.json > mids-labcisco-domain.json

$ cat mids-labcisco-domain.json

[]

إصدار الرسائل المجمعة (500 رسالة)

للتعامل مع العمليات الكبيرة بفعالية، يجب أن تفهم كيفية إدارة مجموعات البيانات الكبيرة باستخدام ترقيم الصفحات. عندما تحتاج إلى معالجة عدد كبير من الرسائل، يجب حساب معلمات الحد والإزاحة لضمان إسترداد مجموعة البيانات الكاملة بدون تجاوز قيود إستجابة واجهة برمجة التطبيقات.

ضبط معلمات واجهة برمجة التطبيقات للعمليات المجمعة

عند إسترداد كمية كبيرة من الرسائل، أستخدم هذا المنطق لتكوين طلبك:

- الحد: يحدد ذلك عدد السجلات التي تم إرجاعها لكل طلب. بينما يمكنك ضبط هذا على عدد كبير (على سبيل المثال، 500 أو 1000) للحصول على مزيد من البيانات في وقت واحد، تذكر أداء النظام وحالات انتهاء المهلة المحتملة.

- الإزاحة: يحدد هذا نقطة بداية مجموعة النتائج الخاصة بك. إذا تجاوز العدد الإجمالي للرسائل الحد المسموح به لديك، فيجب عليك تنفيذ طلبات متعددة، مما يزيد من قيمة التعويض عن طريق قيمة الحد في كل إستدعاء لاحق (على سبيل المثال، الإزاحة=0، الإزاحة=500، الإزاحة=1000).

قياس سير العمل

تخدم العملية المستخدمة في المثال السابق المكون من 10 رسائل كأساس لجميع العمليات المجمعة. لتغيير حجم سير العمل لديك، ببساطة قم بالتكرار من خلال قائمة الانتظار من خلال زيادة معلمة الإزاحة بشكل منهجي. من خلال "التشغيل" مع هذه القيم - ضبط الحد لتحديد حجم الدفعة والإزاحة للتنقل عبر الصفحات - يمكنك إسترداد قائمة انتظار العزل بالكامل ومعالجتها بشكل فعال، بغض النظر عن إجمالي عدد الرسائل.

معلومات ذات صلة

- AsyncOS API 16.0 ل Cisco Secure Email and Web Manager-Get Start Guide - GD (نشر عام)

- الدعم الفني والتنزيلات من Cisco