Espressioni regolari nelle regole di trasporto
Si applica a: Exchange Server 2010
Ultima modifica dell'argomento: 2009-11-05
È possibile utilizzare le espressioni regolari nei predicati delle regole di trasporto di Exchange Server 2010 che corrispondono ai modelli di testo in varie parti del messaggio (come ad esempio le intestazioni del messaggio, il mittente, i destinatari, l'oggetto del messaggio e il corpo). I predicati vengono utilizzati dalle condizioni e dalle eccezioni per determinare l'opportunità o meno di applicare un'azione configurata a un messaggio di posta elettronica.
Per informazioni sulle altre attività di gestione relative alle regole di trasporto, vedere Gestione delle regole di trasporto.
Sommario
Espressioni semplici vs. Espressioni regolari
Espressioni regolari in Exchange 2010
Creazione di una regola di trasporto che consente di utilizzare un'espressione regolare
Espressioni semplici vs. Espressioni regolari
Per comprendere le espressioni regolari, è necessario innanzitutto comprendere le espressioni semplici. Un'espressione semplice è un valore specifico che si desidera sia presente esattamente così in un messaggio. Predicati mediante espressioni semplici corrispondono a parole specifiche o stringhe. Un esempio di una semplice espressione è il titolo di un documento che l'organizzazione non vuole sia distribuito all'esterno, come ad esempio Yearly Sales Forecast.doc. Una parte dei dati in un messaggio di posta elettronica deve corrispondere esattamente a un'espressione semplice per soddisfare una condizione o eccezione nelle regole di trasporto.
Una espressione regolare è una notazione concisa e flessibile che consente di trovare schemi di testo in un messaggio. La notazione è composta da due tipi di carattere di base:
- Caratteri letterali Testo che deve esserci nella stringa di destinazione. Si tratta di normali caratteri, come digitati.
- Metacaratteri Uno o più caratteri speciali non sono interpretati letteralmente. Questi eventi indicano come il testo può variare nella stringa di destinazione.
Le espressioni regolari possono essere utilizzate per analizzare rapidamente i messaggi di posta elettronica per trovare modelli di testo specifici. Questo permette di rilevare i messaggi con specifici tipi di contenuto, come i codici fiscali, i numeri dei brevetti e i numeri di telefono.
Non è possibile associare questi dati a una espressione semplice in quanto per quest'ultima è necessario specificare ogni possibile variazione del valore che si desidera individuare. In molti casi, l'uso di espressioni semplici per applicazioni di questo tipo diventa una sfida logistica e trovare una corrispondenza a un gran numero di espressioni semplici nel contenuto del messaggio può diventare un'attività che richiede molte risorse. L'utilizzo di espressioni regolari è in genere più efficace. Invece di specificare tutte le possibili varianti, è possibile configurare il predicato della regola di trasporto per la ricerca di un modello di testo.
Espressioni regolari in Exchange 2010
In Exchange Management Shell, è possibile utilizzare le espressioni regolari per qualsiasi predicato che accetta la proprietà del predicato Patterns. In Exchange Management Console è possibile utilizzare le espressioni regolari con qualsiasi condizione o eccezione che contiene le parole con schemi di testo. Per ulteriori informazioni sui predicati, vedere Predicati delle regole di trasporto.
Avviso
È necessario verificare attentamente le espressioni regolari create per assicurarsi che forniscano i risultati previsti. Una espressione regolare non correttamente configurata potrebbe produrre corrispondenze non previste e causare un comportamento anomalo nelle regole di trasporto. Ciò può portare ad azioni indesiderate nei messaggi e nel contenuto dei messaggi, con potenziale perdita di dati quando le azioni prevedono il rifiuto o il bounce del messaggio. È opportuno testare le espressioni regolari in un ambiente di prova prima di implementarle nell'ambiente di produzione.
Nella tabella seguente sono elencate tutte le stringhe degli schemi che possono essere utilizzati per creare i modelli di ricerca dell'espressione regolare in Exchange 2010.
Stringhe dello schema
Stringa dello schema | Descrizione |
---|---|
|
La stringa dello schema |
|
La stringa dello schema |
|
La stringa dello schema |
|
La stringa dello schema |
|
La stringa dello schema |
|
La stringa dello schema |
|
Il carattere barra verticale ( |
|
Il carattere di asterisco ( |
|
Le parentesi fungono da delimitatori di raggruppamenti. Ad esempio, |
|
Una barra rovesciata viene utilizzata come carattere di escape prima di un carattere speciale. Caratteri speciali sono i caratteri utilizzati nelle stringhe di modello:
Se si desidera, ad esempio, eseguire la corrispondenza di una stringa contenente |
|
L'accento circonflesso ( Ad esempio, È possibile utilizzare questo carattere anche con il simbolo del dollaro ( |
|
Il simbolo del dollaro ( Ad esempio, È possibile utilizzare questo carattere anche con l'accento circonflesso ( |
Costruzione di espressioni regolari
Utilizzando la tabella precedente, è possibile creare un'espressione regolare che corrisponde al modello dei dati che per cui si desidera eseguire la corrispondenza. Esaminare ciascun carattere o gruppo di caratteri contenuti nei dati per cui si desidera eseguire la corrispondenza procedendo da sinistra verso destra. Leggere la descrizione di ciascuna stringa dello schema per determinare il modo in cui viene applicata ai dati per cui si esegue la corrispondenza. Determinare quindi quale stringa dello schema presente nella tabella rappresenta il carattere o il gruppo di caratteri e aggiungerla all'espressione regolare. Al termine, si dispone di un'espressione regolare completamente costruita.
In questo esempio, l'espressione regolare che segue, corrisponde ai numeri telefonici utilizzati nel Nord America nei formati 425 555-0100 e 425.555.0100:
425(\s|.)\d\d\d(-|.)\d\d\d\d
È possibile elaborare questo esempio aggiungendo il formato (425) 555-0100, dove le parentesi delimitano il prefisso. In questo esempio, un'espressione regolare corrisponde a tutti e tre i formati di numero di telefono.
\d\d\d((\s|.|-|\)|\)\s)\d\d\d(\s|.|-)\d\d\d\d
L'esempio precedente può essere analizzato come segue:
- \d\d\d Questa sequenza indica che deve essere preceduta necessariamente da tre cifre numeriche.
- ((\s|.|-|\)|\)\s) Questa sequenza indica che il numero a tre cifre deve essere seguito da uno spazio, da un trattino o da un punto. Ciascuna stringa corrispondente a un carattere è contenuta nei delimitatori di raggruppamenti ed è separata dal carattere barra verticale. Il che significa che solo uno dei caratteri specificati all'interno dei delimitatori di raggruppamenti può trovarsi in questa posizione nella stringa per cui si esegue la corrispondenza. Per la separazione tra il prefisso e le tre cifre successive, cerca anche una parentesi chiusa o una parentesi chiusa e uno spazio.
- \d\d\d Questa sequenza indica che deve essere seguita necessariamente da tre cifre numeriche.
- (\s|.|-) Questa sequenza indica che il numero a tre cifre deve essere seguito da uno spazio, da un trattino o da un punto.
- \d\d\d\d Questa sequenza indica che deve essere seguita necessariamente da quattro cifre numeriche.
L'espressione regolare sopra riportata corrisponderà ai valori di esempio riportati di seguito:
- (425)555.0100
- 425 555 0100
- 425. 555-0100
- (425) 555-0100
- 425-555-0100
- (425) 555-0100
Creazione di una regola di trasporto che consente di utilizzare un'espressione regolare
In questo esempio viene creata una regola di trasporto in Shell che utilizza espressioni regolari da corrispondere ai numeri dei codici fiscali presenti nell'oggetto di un messaggio di posta elettronica.
New-TransportRule -Name "Social Security Number Block Rule" -SubjectOrBodyMatchesPatterns '\d\d\d-\d\d-\d\d\d\d' -RejectMessageEnhancedStatusCode "5.7.1" -RejectMessageReasonText "This message has been rejected because of content restrictions"
In questo esempio si può visualizzare la nuova regola di trasporto.
Get-TransportRule "Social Security Number Block Rule" | Format-List