Domanda
Come fare per verificare che un messaggio o un filtro contenuti funzioni come previsto?
È possibile testare i filtri per verificarne il corretto funzionamento eseguendo il debug del filtro. Il debug di un filtro è un processo in due passaggi che richiede un'area di quarantena del sistema.
Creare una nuova quarantena del sistema nella GUI denominata 'FilterDebug'. Le quarantene vengono configurate in 'Monitora->Quarantene'. Se è disponibile spazio per la quarantena, fare clic sul pulsante 'Aggiungi quarantena' per configurare la quarantena FilterDebug. Se lo spazio disponibile non è sufficiente, sarà necessario modificare un'altra quarantena e ridurre lo spazio utilizzato per rendere disponibile spazio.
Creare il filtro con le regole (i criteri di corrispondenza) che si prevede di utilizzare e impostare l'azione su "Quarantine('FilterDebug')".
Per eseguire il debug delle regole di corrispondenza, abilitare il filtro in base al criterio di posta appropriato (dove si intende eseguirlo in produzione) e generare traffico.
I messaggi che soddisfano le regole verranno inseriti nella quarantena FilterDebug, in cui è possibile esaminarli e verificare che le regole corrispondano esattamente a ciò che si desidera. Rilascia questi messaggi dalla quarantena e verranno recapitati normalmente. Se si desidera controllare questa impostazione per un determinato periodo di tempo, impostare il periodo di conservazione su un valore sufficientemente breve ed esaminare la quarantena a intervalli regolari per verificare i tipi di messaggi che soddisfano i criteri specificati.
Per eseguire il debug delle operazioni filtro, creare un nuovo criterio di posta che abbia un solo destinatario di prova. Disabilitare la regola in tutti gli altri criteri di posta e abilitarla in questo nuovo criterio di posta. Modificare la regola per eseguire le azioni desiderate. È possibile rimuovere la regola di quarantena.
Generare il traffico e verificare che il messaggio venga recapitato (o meno, a seconda del filtro applicato) al destinatario di prova per verificare che sia quello desiderato. È ora possibile abilitare la regola completata in Criteri di posta per la distribuzione di produzione e disabilitarla dal criterio destinatario di prova.
Una procedura simile può essere utilizzata per eseguire il debug dei filtri messaggi. Iniziare creando i criteri che si desidera utilizzare nella produzione:
RedirectEarningsReports:
if (recv-listener == "InboundMail")
and (subject == "(?i)quarterly earnings") {
quarantine ("FilterDebug");
}
Questa operazione viene eseguita nella 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.
[]> 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
Esaminare i messaggi in quarantena utilizzando la GUI e rilasciare i messaggi. Continuare a guardare il flusso di messaggi in questo modo finché non si è soddisfatti. Aggiungere quindi il destinatario del test alle regole e modificare le azioni in base all'azione che si desidera eseguire nella produzione:
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");
}
Nella CLI, è necessario eliminare e ricreare il filtro:
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
Verificare che le azioni eseguano le operazioni desiderate. A seconda del filtro applicato, è inoltre possibile verificare alcune delle azioni contenute in mail_logs. Infine, unire il filtro finale rimuovendo il destinatario del test:
RedirectEarningsReports:
if (recv-listener == "InboundMail")
and (subject == "(?i)quarterly earnings") {
alt-rcpt-to ("sam@exchange.scu.com");
}
Un aspetto potenzialmente confuso dei filtri e delle quarantene è la gestione del corpo dei messaggi rispetto alle intestazioni dei messaggi. Nell'ESA, il corpo del messaggio e l'intestazione sono trattati separatamente. Se si esaminano i messaggi in quarantena dopo aver applicato le azioni, non verrà visualizzata alcuna modifica dell'intestazione apportata al messaggio, ma verrà completata al momento della consegna. Questo perché l'elaborazione dell'intestazione viene eseguita separatamente, in parallelo, mentre un messaggio avanza attraverso la pipeline. Il messaggio viene riunito con l'intestazione (potenzialmente modificata) prima del recapito, ma non viene visualizzato nella quarantena. In quarantena verranno visualizzate tutte le modifiche apportate al corpo del messaggio, ad esempio la rimozione degli allegati o l'inserimento di timbri a piè di pagina.