傳輸規則中的規則運算式

 

適用版本: Exchange Server 2010 SP2, Exchange Server 2010 SP3

上次修改主題的時間: 2016-03-18

您可以在 MicrosoftExchange Server 2010 傳輸規則述詞中使用規則運算式,以符合郵件不同部分 (例如郵件標頭、寄件者、收件者、郵件主旨和內文) 的文字模式。述詞是供條件及例外狀況使用,用以判定是否應該將設定的動作套用至電子郵件。

注意事項附註:
由於在客戶環境中的差異,Microsoft 客戶支援服務 (CSS) 無法參與開發或測試自訂規則運算式指令碼 (「RegEx 指令碼」)。針對 RegEX 的自訂指令碼開發、測試和偵錯,Office 365 客戶必須依賴內部的 IT 資源。此外,Office 365 客戶可以選擇使用外部顧問資源,例如 Microsoft 諮詢服務 (MCS)。無論指令碼開發資源,CSS EXO 和 EOP 技術支援工程師無法利用自訂 RegEx 指令碼查詢來協助客戶。

要尋找與傳輸規則相關的管理工作嗎?請參閱管理傳輸規則

目錄

簡單運算式與規則運算式

Exchange 2010 中的規則運算式

建立使用規則運算式的傳輸規則

簡單運算式與規則運算式

若要了解規則運算式,您必須先了解簡易運算式。簡易運算式</newTerm>是郵件中您希望完全相符的特定值。使用簡易運算式的述詞符合特定的字或字串。舉例來說,您的組織不想要散佈到組織外部的文件標題,即為簡易運算式的一例,例如 Yearly Sales Forecast.doc。電子郵件中的部分資料必須完全符合簡易運算式,才能滿足傳輸規則中的條件或例外狀況。

規則運算式</newTerm>是簡要並具彈性的表示法,用以尋找郵件中的文字模式。表示法是由兩種基本字元類型所組成:

  • 常值字元   必須存在目標字串中的文字。這些是一般字元輸入。

  • 中繼字元   一或多個不逐字解譯的特殊字元。這些可以表示文字在目標字串中如何變化。

您可以使用規則運算式快速剖析電子郵件,以找出特定的文字模式。這可讓您偵測特定內容類型的郵件,例如,身分證號碼 (SSN)、專利號碼和電話號碼。

因為簡易運算式需要您輸入想要偵測之值的每個可能變化,所以理論上並不能使用簡易運算式來比對此資料。在許多情況下,使用這類應用程式的簡易運算式會成為後勤的挑戰,而且在郵件內容中比對大量簡易運算式可能很耗費資源。使用規則運算式通常更有效率。您可以設定傳輸規則述詞來搜索文字模式,而不用指定所有可能的變化。

Exchange 2010 中的規則運算式

在 Exchange 管理命令介面中,您可以將規則運算式用於所有接受 Patterns 述詞內容的述詞。在 Exchange 管理主控台中,您可以將規則運算式與所有含有 with text patterns 字詞的條件及例外狀況搭配使用。如需述詞的詳細資訊,請參閱傳輸規則述詞

注意注意:
您必須仔細測試所建構的規則運算式,以確定它們會產生預期的結果。不正確地設定規則運算式會產生未預期的比對結果,並造成不想要的傳輸規則行為。這可能會導致在郵件和郵件內容上採取不想要的動作,在使用拒絕或彈回郵件之類的動作時,可能會導致資料遺失。另外,複雜的規則運算式可能會影響郵件運輸效能。請先在測試環境中測試規則運算式,然後再實際執行它們。

下表列出您可以在 Exchange 2010 中,用來建立模式比對規則運算式的模式字串。

模式字串

模式字串 說明

\S

\S 模式字串會比對不是空格的所有單一字元。

\s

\s 模式字串會比對所有單一空白字元。

\D

\D 模式字串會比對所有非數字的字元。

\d

\d 模式字串會比對所有單一數字。

\w

\w 模式字串會比對所有依字母或十進位數字分類的單一 Unicode 字元。

\W

\W 模式字串會比對所有未依字母或十進位數字分類的單一 Unicode 字元。

|

縱線 (|) 字元會執行 OR 函數。

*

星號 (*) 會比對零或多個前一個字元的執行個體。例如,ab*c 符合下列字串:acabcabbbbc

( )

括號會作為群組分隔符號。例如,a(bc)* 符合下列字串:aabcabcbcabcbcbc 等等。

\

反斜線是用來當作特殊字元之前的逸出字元。特殊字元是模式字串中使用的字元:

  • 反斜線 ( \ )

  • 縱線 ( | )

  • 星號 ( * )

  • 左括弧 ( ( )

  • 右括弧 ( ) )

  • 插入符號 ( ^ )

  • 貨幣符號 ( $ )

例如,如果想要比對含有 (525) 的字串,請輸入 \(525\)

^

插入符號 (^) 字元會指出接在插入符號後面的模式字串必須存在於要比對之文字字串的開頭。

例如,^fred@contoso 會比對 fred@contoso.com fred@contoso.co.uk,但是不會比對 alfred@contoso.com

$

貨幣符號 ($) 字元會指出前面的模式字串必須存在於要比對之文字字串的結尾。

例如,contoso.com$ 會比對 adam@contoso.com kim@research.contoso.com,但是不會比對 kim@contoso.com.au

建構規則運算式

您可以使用先前的表格,建構用來比對想要比對之資料模式的規則運算式。請由左至右檢查每個想要比對之資料中的字元或字元群組。讀取每個模式字串的描述,以判斷如何將它套用至要比對的資料中。接著,再判斷表格中的哪個模式字串代表該字元或字元群組,並將該模式字串新增至規則運算式。完成時,您就會擁有建構完整的規則運算式。

此規則運算式的範例會比對格式為 425 555-0100 及 425.555.0100 的北美地區電話號碼。

425(\s|.)\d\d\d(-|.)\d\d\d\d

您可以新增電話格式 (425) 555-0100 (用括號括住區碼),來延伸此範例。此規則運算式的範例會比對所有三個電話號碼格式。

\d\d\d((\s|.|-|\)|\)\s)\d\d\d(\s|.|-)\d\d\d\d

您可以依下列方式分析前述範例:

  • \d\d\d   此部分要求先出現完整 3 位數字。

  • ((\s|.|-\)|\)\s)   此部分要求在 3 位數字後面要有空格、句號或連字號。每個字元比對字串是包含在群組分隔符號中,且用縱線字元予以隔開。這表示在要比對之字串的這個位置中,只可以有群組分隔符號內的其中一個指定字元。對於區碼和下一組 3 位數之間的區隔,它還會尋找右括弧,或是右括弧及空格。

  • \d\d\d   此部分要求其後應接 3 位數字。

  • (\s|.|-)   此部分要求在 3 位數字後面要有空格、句號或連字號。

  • \d\d\d\d   此部分要求其後應接 4 位數字。

上述規則運算式會比對下列範例值:

  • (425)555.0100

  • 425 555 0100

  • 425. 555-0100

  • (425) 555-0100

  • 425-555-0100

  • (425) 555-0100

使用規則運算式建立傳輸規則

此範例會在命令介面中建立傳輸規則,以使用規則運算式來比對電子郵件主旨中的 SSN。

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" 

此範例可讓您檢視新的傳輸規則。

Get-TransportRule "Social Security Number Block Rule" | Format-List

 © 2010 Microsoft Corporation. 著作權所有,並保留一切權利。