سؤال
كيف يمكنني إختبار عامل تصفية الرسالة أو المحتوى للتأكد من أنه يعمل كما هو مصمم؟
يمكن إختبار المرشحات لضمان أنها تعمل بشكل صحيح من خلال تصحيح المرشح. تصحيح عامل تصفية ما هو عملية من خطوتين تتطلب منطقة عزل للنظام.
قم بإنشاء عزل جديد للنظام في واجهة المستخدم الرسومية يسمى 'FilterDebug'. يتم تكوين الحجر الصحي تحت إجراءات الحجر الصحي "Monitor-". إذا كانت لديك مساحة عزل متوفرة، فانقر فوق الزر "إضافة الحجر الصحي" لتكوين عزل FilterDebug. في حالة عدم توفر مساحة كافية، سيتعين عليك تحرير حجر صحي آخر وتقليل المساحة المستخدمة لتوفير بعض المساحة الخالية.
قم بإنشاء عامل التصفية باستخدام القواعد (المعايير المطابقة) التي تتوقع إستخدامها وتعيين الإجراء على "Quarantine('FilterDebug')".
لتصحيح أخطاء القواعد المطابقة الخاصة بك، قم بتمكين عامل التصفية في نهج البريد المناسب (حيث ترغب في تشغيله في الإنتاج) وإنشاء حركة مرور البيانات.
سيتم إدخال الرسائل التي تطابق القواعد الخاصة بك في العزل FilterDebug، حيث يمكنك فحصها وإقناع نفسك بأن القواعد متطابقة بدقة مع ما تريده. قم بإطلاق هذه الرسائل من الحجر الصحي، وسيتم تسليمها بشكل طبيعي. إذا كنت ترغب في مشاهدة هذا لمدة، فقم بتعيين فترة الاحتفاظ بالحجر الصحي إلى فترة قصيرة بشكل مقبول، ثم قم بفحص العزل على فترات منتظمة لمعرفة أنواع الرسائل التي تطابق معاييرك.
لتصحيح أخطاء إجراءات عامل التصفية، قم بإنشاء "نهج بريد" جديد يحتوي على مستلم إختبار واحد فقط. قم بتعطيل قاعدتك في كافة نهج البريد الأخرى وتمكينها في نهج البريد الجديد هذا. قم بتحرير القاعدة الخاصة بك لاتخاذ الإجراءات التي تريدها. يمكنك إزالة قاعدة العزل.
قم بإنشاء حركة مرور وتحقق من الرسالة كما يتم تسليمها (أو لا، حسب عامل التصفية الخاص بك) إلى مستلم الاختبار للتحقق من أن هذا ما تريده. يمكنك الآن تمكين القاعدة المكتملة في "نهج البريد" لنشر الإنتاج وتعطيلها من نهج مستلم الاختبار.
يمكن إستخدام إجراء مماثل لتصحيح أخطاء عوامل تصفية الرسائل. إبدأ ببناء المعايير التي تريد إستخدامها في الإنتاج:
RedirectEarningsReports:
if (recv-listener == "InboundMail")
and (subject == "(?i)quarterly earnings") {
quarantine ("FilterDebug");
}
ويتم هذا في واجهة سطر الأوامر:
smtp.example.com>filters
Choose the operation you want to perform:
- NEW - Create a new filter.
- DELETE - Remove a filter.
- IMPORT - Import a filter script from a file.
- EXPORT - Export filters to a file
- MOVE - Move a filter to a different position.
- SET - Set a filter attribute.
- LIST - List the filters.
- DETAIL - Get detailed information on the filters.
- LOGCONFIG - Configure log subscriptions used by filters.
- ROLLOVERNOW - Roll over a filter log file.
[]> new
Enter filter script. Enter '.' on its own line to end.
RedirectEarningsReports:
if (recv-listener == "InboundMail")
and (subject == "(?i)quarterly earnings") {
quarantine ("FilterDebug");
}
.
1 filters added.
Choose the operation you want to perform:
- NEW - Create a new filter.
- DELETE - Remove a filter.
- IMPORT - Import a filter script from a file.
- EXPORT - Export filters to a file
- MOVE - Move a filter to a different position.
- SET - Set a filter attribute.
- LIST - List the filters.
- DETAIL - Get detailed information on the filters.
- LOGCONFIG - Configure log subscriptions used by filters.
- ROLLOVERNOW - Roll over a filter log file.
[]>
smtp.example.com >commit
Please enter some comments describing your changes:
[]> add RedirectEarningsReports filter test actions (incomplete)
Changes committed: Wed Nov 24 12:00:10 2004 MST
قم بفحص الرسائل المعزولة باستخدام واجهة المستخدم الرسومية (GUI) وأصدر الرسائل. استمر في مشاهدة تدفق الرسائل بهذه الطريقة حتى ترضى. بعد ذلك، أضف مستلم الاختبار إلى القواعد، وقم بتغيير الإجراءات إلى ما تريد تشغيله في الإنتاج:
RedirectEarningsReports:
if (recv-listener == "InboundMail")
and (subject == "(?i)quarterly earnings")
and (rcpt-to == "(?i)alan@exchange\\.scu\\.com$") {
alt-rcpt-to ("sam@exchange.scu.com");
}
في واجهة سطر الأوامر (CLI)، يلزمك حذف عامل التصفية وإعادة إنشائه:
smtp.example.com> filters
Choose the operation you want to perform:
- NEW - Create a new filter.
- DELETE - Remove a filter.
- IMPORT - Import a filter script from a file.
- EXPORT - Export filters to a file
- MOVE - Move a filter to a different position.
- SET - Set a filter attribute.
- LIST - List the filters.
- DETAIL - Get detailed information on the filters.
- LOGCONFIG - Configure log subscriptions used by filters.
- ROLLOVERNOW - Roll over a filter log file.
[]> list
Num Active Valid Name
1 N Y betatest
2 N Y StripInboundExes
3 Y Y RedirectEarningsReports
Choose the operation you want to perform:
- NEW - Create a new filter.
- DELETE - Remove a filter.
- IMPORT - Import a filter script from a file.
- EXPORT - Export filters to a file
- MOVE - Move a filter to a different position.
- SET - Set a filter attribute.
- LIST - List the filters.
- DETAIL - Get detailed information on the filters.
- LOGCONFIG - Configure log subscriptions used by filters.
- ROLLOVERNOW - Roll over a filter log file.
[]> delete
Enter the filter name, number, or range:
[]> 3
1 filters deleted.
Choose the operation you want to perform:
- NEW - Create a new filter.
- DELETE - Remove a filter.
- IMPORT - Import a filter script from a file.
- EXPORT - Export filters to a file
- MOVE - Move a filter to a different position.
- SET - Set a filter attribute.
- LIST - List the filters.
- DETAIL - Get detailed information on the filters.
- LOGCONFIG - Configure log subscriptions used by filters.
- ROLLOVERNOW - Roll over a filter log file.
[]> new
Enter filter script. Enter '.' on its own line to end.
RedirectEarningsReports:
if (recv-listener == "InboundMail")
and (subject == "(?i)quarterly earnings")
and (rcpt-to == "(?i)alan@exchange\\.scu\\.com$") {
alt-rcpt-to ("sam@exchange.scu.com");
}
.
1 filters added.
Choose the operation you want to perform:
- NEW - Create a new filter.
- DELETE - Remove a filter.
- IMPORT - Import a filter script from a file.
- EXPORT - Export filters to a file
- MOVE - Move a filter to a different position.
- SET - Set a filter attribute.
- LIST - List the filters.
- DETAIL - Get detailed information on the filters.
- LOGCONFIG - Configure log subscriptions used by filters.
- ROLLOVERNOW - Roll over a filter log file.
[]>
smtp.example.com> commit
Please enter some comments describing your changes:
[]> set RedirectEarningsReports to test recipient
Changes committed: Wed Nov 24 12:10:07 2004 MST
تحقق من تنفيذ الإجراءات التي تريدها. (على حسب عامل التصفية، يمكنك أيضا التحقق من بعض الإجراءات في mail_log.) وأخيرا، قم بوضع عامل التصفية النهائي معا عن طريق إزالة مستلم الاختبار:
RedirectEarningsReports:
if (recv-listener == "InboundMail")
and (subject == "(?i)quarterly earnings") {
alt-rcpt-to ("sam@exchange.scu.com");
}
أحد جوانب عوامل التصفية والحجر الصحي التي يحتمل أن تكون مزعجة هي معالجة النصوص الأساسية للرسائل في مقابل رؤوس الرسائل. وفي الإيسا، يجري تناول نص الرسالة ورأسها بشكل منفصل. إذا قمت بفحص الرسائل الموجودة في العزل بعد تطبيق الإجراءات، فلن ترى أي تلاعب في الرأس تم بالرسالة (ولكن سيتم إتمامه عند التسليم). وذلك لأن معالجة الرأس تتم بشكل منفصل، بالتوازي، مع تقدم الرسالة عبر خط الأنابيب. يتم إعادة توحيد الرسالة برأسها (الذي يحتمل تعديله) قبل التسليم، ولكن لا يتم رؤيتها في العزل. سترى أي تغييرات في نص الرسالة، مثل تجريد المرفق أو ختم التذييل، في العزل.