收件者解析
適用於:Exchange Server 2013
收件者解析 是擴充和解析郵件中所有收件者的程式。 解析收件者的動作會將收件者與 Microsoft Exchange 組織中對應的 Active Directory 物件相符。 展開收件者的動作會將所有通訊群組展開成個別收件者的清單。 收件者解析可讓郵件限制和替代收件者正確套用至每個收件者。
在 Microsoft Exchange Server 2013 組織中,收件者解析是由信箱伺服器上傳輸服務中的分類器執行。 在提交佇列中放入新抵達的訊息之後,就會對每個訊息進行分類。 除了內容轉換和路由之外,收件者解析也會在郵件上執行,然後再將訊息放入傳遞佇列中。 分類器會在路由之前執行收件者解析。 負責收件者解析的分類器元件通常稱為 解析程式。
最上層解析度
最上層解析 是收件者解析的第一個階段。 最上層解析會將傳入郵件中的每個收件者與 Active Directory 中相符的收件者對象產生關聯。 在最上層解析期間,分類器會建立一份清單,其中包含發件者,以及存在於郵件內的初始未展開收件者電子郵件位址。 接著,分類器會使用該電子郵件地址清單來查詢 Active Directory,以尋找具有相符電子郵件地址屬性的任何擁有郵件功能的物件。 找到相符專案時,會快取相符 Active Directory 對象的屬性以供稍後使用。 也會強制執行任何發件者訊息限制。
收件者電子郵件位址
最上層解析的開頭是郵件,以及 來自郵件信封的收件者初始未展開清單。 訊息信封包含用來在 SMTP 訊息伺服器之間傳輸訊息的命令。 寄件者的電子郵件位址包含在 MAIL FROM: 命令中。 每個收件者的電子郵件位址都包含在個別的 RCPT TO: 命令中。 信封寄件人和信封收件者通常是從寄件人和收件者建立於郵件標頭的 To:
、 From:
、 和 Bcc:
Cc:
標頭欄位中。 不過,這不一定正確。 郵件 To:
中的 、 From:
、 Cc:
和 Bcc:
標頭字段很容易偽造,而且可能不符合用來傳輸郵件的實際寄件者或收件者電子郵件位址。
封裝的電子郵件位址
例如,標準 SMTP 電子郵件位址遵循 RFC 2821 和 RFC 2822 的規格,例如 chris@contoso.com。 不過,電子郵件位址也可以是封裝在有效 SMTP 位址內的非 SMTP 電子郵件位址。 Exchange 支援使用 Internet Mail Connector Encapsulated Address (IMCEA) 封裝方法的封裝位址。
此封裝方法需要編碼 SMTP 電子郵件地址中無效的任何字元。 英數位元、等號 (=) ,且連字元 ( ) 不需要編碼。 其他字元則使用下列編碼語法:
/) (正斜線會由底線 (_) 取代。
其他US-ASCII 字元會取代為加號 (+) ,而其 ASCII 值的兩位數是以十六進位方式寫入。 例如,空格元具有編碼值
+20
。
IMCEA 封裝方法會使用下列語法: IMCEA<Type>-<address>@<domain>
佔位元 <類型> 會識別非 SMTP 位址的類型,例如 EX
、 X400
或 FAX
。
注意事項
雖然 SMTP
和 X500
理論上是 <Type> 的有效值,但 Exchange 收件者解析會拒絕任何使用這些類型之一的 IMCEA 編碼位址。
佔位元 <位址> 是編碼的原始位址。 佔位元 <網域> 代表用來封裝非 SMTP 位址的 SMTP 網域,例如,contoso.com
使用 IMCEA 封裝方法時,只有在網域符合 Exchange 組織中的預設授權網域時,才會取消封裝位址。 如需已接受網域的詳細資訊,請參閱 已接受的網域。
Exchange 中 SMTP 電子郵件位址的最大長度為 571 個字元。 此限制包括下列各項:
- 位址名稱部分的 315 個字元
- 功能變數名稱 255 個字元
- at sign (@) 字元,將位址的名稱部分與域名分隔開來
請注意,當位址的名稱部分超過 315 個字元時,Exchange 不支援使用 IMCEA 封裝方法編碼的訊息,即使完整的電子郵件位址小於 571 個字元也一般。
位址解析
針對每個郵件,寄件者電子郵件位址和所有收件者電子郵件地址都會新增至用來查詢 Active Directory 的清單。 任何封裝的位址都會在新增至電子郵件位址清單之前取消封裝。 Active Directory 查詢一次最多會在 20 個電子郵件地址上執行。 如果 Active Directory 查詢遇到任何暫時性錯誤,訊息會傳回提交佇列,並延後與 Microsoft Exchange Transport 服務相關聯之 XML 應用程式組態檔中 %ExchangeInstallPath%Bin\EdgeTransport.exe.config
ResolverRetryInterval 密鑰所指定的時間。 此預設值為 30 分鐘。
下表描述在 Active Directory 中找到的收件者物件。 如需 Exchange 收件者類型的詳細資訊,請參閱 收件者。
Active Directory 中的收件者物件
Active Directory 收件者類型 | 描述 |
---|---|
DistributionGroup | 任何啟用郵件功能的群組物件。 通訊群組物件類型如下所示:
|
DynamicDistributionGroup | 具有 Active Directory 類別 msExchDynamicDistributionList 的物件。 如需詳細資訊,請 參閱管理動態通訊群組。 |
信箱 | 具有電子郵件位址和已定義 Database 參數的用戶物件 |
MailUser | 具有 沒有已定義 Database 參數之電子郵件地址的用戶物件。 如需詳細資訊,請 參閱管理郵件使用者。 |
MailContact | 具有電子郵件地址的聯繫人物件。 一般而言,郵件聯繫人會用於 Exchange 組織外部的收件者。 跨樹系Exchange環境中也會使用郵件聯繫人。 如需詳細資訊,請 參閱管理郵件聯繫人。 |
MailPublicFolder | 具有電子郵件地址的公用資料夾物件。 |
MicrosoftExchangeRecipient | 具有 Active Directory 類別 msExchExchangeServerRecipient 的物件。 如需 Microsoft Exchange 收件者對象的詳細資訊,請參閱 收件者。 |
SystemAttendantMailbox | 具有 Active Directory 類別 exchangeAdminService 的物件。 Exchange 組織中應該只有一個系統語音應答信箱。 |
SystemMailbox | 具有電子郵件位址且位於 Microsoft Exchange 系統物件容器中的用戶物件。 Exchange 組織中的每個信箱資料庫都應該有一個系統信箱。 |
Active Directory 查詢會將包含遺漏或格式不正確關鍵屬性的物件分類為無效的物件。 例如,沒有電子郵件地址的動態通訊群組物件會被視為無效。 傳送給被歸類為無效物件之收件者的訊息會產生非傳遞報告 (NDR) 。
針對每個電子郵件位址,會針對所有可能的收件者屬性執行單一初始查詢,例如收件者標識碼、收件者類型、郵件限制、電子郵件位址和替代收件者。 系統會快取收件者的適用屬性以供稍後使用。 收件者解析會根據收件者解析方式的相似性,以及適用收件者屬性的相似性來分類收件者。
用於位址解析的 LDAP 篩選器描述如下:
- 針對 EX 電子郵件地址類型,LDAP 篩選是以收件者 legacyExchangeDN Active Directory 屬性或收件者 proxyAddresses Active Directory 屬性為基礎。 legacyExchangeDN Active Directory 屬性優先。
- 對於所有其他電子郵件地址類型,收件者 proxyAddresses Active Directory 屬性會作為 LDAP 篩選條件。
如果郵件中使用的電子郵件位址不符合對應 Active Directory 物件的主要 SMTP 位址,則分類器會重寫郵件中的電子郵件位址,以符合主要 SMTP 位址。 原始電子郵件地址會儲存在 ORCPT=
郵件信封中 RCPT TO: 命令的專案中。
寄件者郵件限制
用於發件者訊息大小限制的大小是訊息標頭中 X-MS-Exchange-Organization-OriginalSize: 標頭欄位的值。 Exchange 會使用此標頭字段來記錄訊息進入 Exchange 組織時的原始訊息大小。 每當根據指定的訊息大小限制檢查訊息時,就會使用目前訊息大小或原始訊息大小標頭的較低值。 訊息的大小可能會因為內容轉換、編碼和代理程序處理而變更。 如果此標頭欄位不存在,則會使用目前的訊息大小值來建立。 如果訊息太大,則會產生 NDR 並停止其他訊息處理。
只有在處理郵件的第一部信箱伺服器上的傳輸服務中,才會強制執行發件者收件者限制。 原始未展開的郵件信封收件者計數會與寄件者收件者限制進行比較。 原始、未展開的郵件信封收件者計數是用來避免在 2003 Microsoft Exchange Server 巢狀散發清單使用遠端擴充伺服器時發生的部分訊息傳遞問題。
訊息寄件人和所有收件者都會在郵件中標記擴充屬性,以標示為已解決。 如果郵件必須再次通過收件者解析,此擴充屬性可讓訊息略過最上層解析。 因為 Microsoft Exchange Transport 服務已重新啟動,所以訊息可能必須再次通過收件者解析。
擴張
展開會在最上層解析之後發生。 擴充會將收件者的巢狀層級完全展開為個別收件者。 擴充可能需要透過擴充程式進行多次行程,才能擴充所有收件者。 並非所有收件者都必須展開。 不過,所有收件者都必須經過擴充程式。 擴充程式也會對所有類型的收件者強制執行收件者郵件限制。
下列清單描述需要擴充的收件者類型:
通訊群組和動態通訊群組:通訊群組會根據 memberOf Active Directory 屬性展開。 動態通訊群組是使用Active Directory 查詢定義來擴充。 如果在群組上設定 ExpansionServer 參數,則目前的伺服器不會展開群組。 通訊群組會路由傳送至指定的伺服器進行擴充。
注意事項
如果您在組織中選取特定的傳輸伺服器作為擴充伺服器,則通訊群組使用量會隨著擴充伺服器的可用性而不同。 如果擴充伺服器無法使用,則無法傳遞傳送至通訊群組的任何訊息。 如果您打算為通訊群組使用特定擴充伺服器,為了降低服務中斷的風險,您應該考慮為這些伺服器實作高可用性解決方案。
替代收件者: ForwardingAddress 參數可以在信箱和啟用郵件功能的公用資料夾上設定。 ForwardingAddress 參數會將所有訊息重新導向至指定的替代收件者。 這稱為 轉寄收件者。 在 ForwardingAddress 參數中指定替代的傳遞位址,並將 DeliverToMailboxAndForward 參數設定為
$true
時,郵件會傳遞給原始收件者和替代收件者。 這稱為 已傳遞和轉寄收件者。聯繫人鏈結: 聯繫人鏈結 是郵件使用者或郵件聯繫人,其 ExternalEmailAddress 參數已設定為Exchange組織中其他收件者的電子郵件位址。
偵測收件者迴圈
當通訊群組、替代收件者和聯繫人鏈結展開時,分類器會檢查 收件者迴圈。 收件者迴圈是一個收件者設定問題,會在無止盡的圓圈中將訊息傳遞給相同的收件者。 下列清單描述不同類型的收件者循環:
無害的收件者迴圈:無害的收件者迴圈會導致訊息傳遞成功。 下列清單描述發生無害收件者迴圈時的兩個案例:
- 當兩個通訊群組彼此包含為成員時。
- 當信箱或啟用郵件功能的公用資料夾設定為彼此傳遞和轉寄時。 當兩個收件者的 DeliverToMailboxAndForward 參數設定為
$true
,且 ForwardingAddress 參數設定為彼此時,就會發生這種情況。
偵測到無害的收件者迴圈時,會將郵件傳遞給收件者,但不會嘗試將郵件傳遞給相同的收件者。
中斷的收件者迴圈:中斷的收件者迴圈無法成功傳遞郵件。 當信箱或啟用郵件功能的公用資料夾將 ForwardingAddress 參數設定為彼此時,就會出現收件者迴圈中斷的範例。 當分類器偵測到中斷的收件者迴圈時,目前收件者的擴充活動會停止,而且會為收件者產生 NDR。
偵測收件者迴圈並不會防止重複的訊息傳遞。 例如,如果下列條件成立,通訊群組 C 會遇到重複的訊息傳遞:
- 通訊群組 B 和通訊群組 C 是通訊群組 A 的成員。
- 通訊群組 C 也是通訊群組 B 的成員。
散發群組的傳遞報表重新導向
當通訊群組展開時,會檢查訊息類型,以判斷它是否為傳遞報告訊息。 如果訊息是傳遞報告,則會檢查通訊群組的重新導向設定,以判斷是否需要重新導向傳遞報告。 您可能想要隱藏傳遞報告,因為傳遞報告可能會揭露有關通訊群組及其成員資格的不必要資訊。
下列清單描述通訊群組和動態通訊群組可用的傳遞報表重新導向設定:
ReportToManagerEnabled:此參數可讓傳遞報告傳送給通訊群組管理員。 有效的值為
$true
或$false
。 預設值為$false
。 對於通訊群組,管理員是由 Set-Group Cmdlet 中的 ManagedBy 參數所控制。 對於動態通訊群組,管理員是由 Set-DynamicDistributionGroup Cmdlet 中的 ManagedBy 參數所控制。ReportToOriginatorEnabled:此參數可讓傳遞報告傳送給傳送至此通訊群組的電子郵件訊息發件者。 有效的值為
$true
或$false
。 預設值為$true
。注意事項
ReportToManagerEnabled 参数和 ReportToOriginatorEnabled 参数的值不能都是
$true
。 如果一個參數設定為$true
,則另一個參數必須設定為$false
。 這兩個參數的值可以是$false
。 這會隱藏所有傳遞報表訊息的所有重新導向。
下列清單描述可用的傳遞報告訊息:
DR) (收據 :此報告會確認郵件已傳遞給其預定的收件者。
DSN) (傳遞狀態通知 :此報告描述嘗試傳遞訊息的結果。 如需 DSN 訊息的詳細資訊,請參閱 Exchange 2013 中的 DSN 和 DDR。
MDN) (訊息處置通知 :此報告描述成功傳遞至收件者之後的訊息狀態。 讀取通知 (RN) 和非讀取通知 (NRN) 都是 MDN 訊息的範例。 MDN 訊息是在 RFC 2298 中定義,並由訊息標頭中的 Disposition-Notification-To: 標頭字段控制。 使用
Disposition-Notification-To:
標頭欄位的 MDN 設定與許多不同的訊息伺服器相容。 您也可以使用 Microsoft Outlook 和 Exchange 中的 MAPI 屬性來定義 MDN 設定。未傳遞報表 (NDR) :此報表會向郵件發件者指出訊息無法傳遞給指定的收件者。
NRN) (非讀取通知 :此報告指出在讀取訊息之前已刪除訊息。
不在辦公室 (OOF) :此報告指出收件者不會回復電子郵件訊息。 縮寫 OOF 的日期會回到原始的 Microsoft 訊息系統,其中對應的通知命名為「設備已用完」。
讀取通知 (RN) :此報告表示已讀取訊息。
召回報告:此報告指出特定收件者的召回要求狀態。 召回要求是當發件者嘗試使用 Outlook 重新叫用傳送的郵件時。
當傳遞報表訊息傳送至通訊群組時,下列設定會導致刪除報表訊息:
- 未設定報表重新導向。 或者,報表重新導向會設定為訊息傳送者。
- 報表重新導向會設定為通訊群組管理員,而傳遞報告訊息不是 NDR。
當傳遞報表訊息傳送至通訊群組時,傳遞報告訊息可能會傳遞給通訊群組管理員。 當報表重新導向設定為通訊群組管理員,且報表訊息是 NDR 時,就會發生這種情況。
當不是傳遞報表訊息的訊息傳送至通訊群組時,訊息會傳遞給通訊群組成員。 下列清單摘要說明報表要求設定:
- 如果報表重新導向設定為訊息傳送者,就不會修改報表要求設定。
- 如果未設定報表重新導向,則會隱藏所有報表要求設定。 專案
NOTIFY=NEVER
會新增至信件信封中每個收件者的 RCPT TO: 。 - 如果報表重新導向設定為通訊群組管理員,則除了傳送至通訊群組管理員的 NDR 訊息以外,所有報表要求設定都會隱藏。
收件者的郵件限制
擴充程式也會強制執行為收件者設定的任何訊息限制。 您可以針對每個收件者或 Exchange 組織中的所有中樞傳輸伺服器,個別設定這些限制。 下表描述為收件者設定的訊息限制。
來源 | 參數 | 描述 |
---|---|---|
Set-DistributionGroup Set-DynamicDistributionGroup Set-Mailbox Set-MailContact Set-MailPublicFolder Set-MailUser Set-TransportConfig |
MaxReceiveSize | MaxReceiveSize 參數會指定為收件者設定的郵件限制所使用的大小是郵件標頭中 X-MS-Exchange-Organization-OriginalSize: 標頭字段的值。 Exchange 會使用此標頭字段來記錄訊息進入 Exchange 組織時的原始訊息大小。 每當根據指定的訊息大小限制檢查訊息時,就會使用目前訊息大小或原始訊息大小標頭的較低值。 訊息的大小可能會因為內容轉換、編碼和代理程序處理而變更。 如果此標頭欄位不存在,則會使用目前的訊息大小值來建立。 如果訊息太大,則會產生 NDR 並停止其他訊息處理。 |
Set-DistributionGroup Set-DynamicDistributionGroup Set-Mailbox Set-MailContact Set-MailPublicFolder Set-MailUser |
RequireSenderAuthenticationEnabled |
RequireSenderAuthenticationEnabled 參數需要所有傳送給收件者的郵件都來自已驗證的發件者。 當此參數的值設定為 $true 時,來自未經驗證發件者的訊息會遭到拒絕。 所有傳送郵件至系統和系統語音應答信箱的寄件人都必須經過驗證。 |
Set-DistributionGroup Set-DynamicDistributionGroup Set-Mailbox Set-MailContact Set-MailPublicFolder Set-MailUser |
AcceptMessagesOnlyFromSendersOrMembers RejectMessagesFromSendersOrMembers |
AcceptMessagesOnlyFromSendersOrMembers 參數會指定其成員可以傳送郵件給收件者的發件者或通訊群組。 請注意,此參數結合了舊版 AcceptMessagesOnlyFrom 和 AcceptMessagesOnlyFromDLMembers 參數的功能。 RejectMessagesFromSendersOrMembers 參數會指定不允許其成員傳送郵件給收件者的發件者或通訊群組。 請注意,此參數結合了舊版 RejectMessagesFrom 和 RejectMessagesFromDLMembers 參數的 功能。 分類器會以兩個階段檢查收件者許可權。 第一個階段會決定發件人是否存在於 AcceptOnlyMessagesFromSendersOrMembers 或 RejectMessagesFromSendersOrMembers 參數中。 如果在任一參數中找不到寄件者,則會完全展開這些參數中的通訊群組。 完全擴充通訊群組可能需要一些時間。 建議您將這些參數中巢狀散發群組的深度降到最低。 |
已驗證的寄件者所傳送的某些訊息類型不受限制。 下列清單描述不受收件者限制的郵件:
Microsoft Exchange 收件者所傳送的所有郵件:這些訊息包括 DSN 訊息、日誌報表、配額訊息,以及傳送給內部郵件發件者的系統產生訊息。 如需 Microsoft 收件者的詳細資訊,請參閱 收件者。
由外部郵遞員位址傳送的所有訊息:這些訊息包括 DSN 訊息和其他系統產生的訊息,這些訊息會傳送給外部郵件寄件者。 如需外部郵遞員地址的詳細資訊,請 參閱設定外部郵遞員位址。
某些類型的訊息從 Exchange 組織傳送到外部網域時會遭到封鎖。 設定是由 Set-RemoteDomain Cmdlet 中的下列參數所控制:
- AllowedOOFType
- AutoForwardEnabled
- AutoReplyEnabled
- DeliveryReportEnabled
- NDREnabled
如需詳細資訊,請參閱 遠端網域。
混淆和控制收件者擴充
由於收件者解析會展開並解析郵件收件者的完整清單,因此有時必須建立相同郵件的不同複本。 下列案例說明這些情況:
當郵件收件者需要不同的郵件設定時:某些收件者可能必須啟用讀取回條之類的訊息屬性,並封鎖其他收件者。 建立新版本的訊息,其屬性與原始訊息稍有不同,稱為 bifurcation。
若要限制單一郵件中的信封收件者數目:當大型通訊群組擴充時,收件者擴充程式可以產生數千個個別收件者。 在 Exchange 中,不會建立具有數千個信封收件者的單一郵件複本,而是會建立相同郵件的多個復本,且信封收件者數目有限。
分 岔
如果下列條件成立,收件者解析會混淆訊息:
更新郵件信封中 MAIL FROM: 中的郵件寄件者時。 例如,當通訊群組上的 ReportToManagerEnabled 參數具有 值時
$true
。當必須隱藏自動回應訊息時,例如 DSN、OOF 訊息和回收報告。
擴充替代收件者時。
當 Resent-From: 標頭字段必須新增至訊息標頭時。 重新傳送標頭字段是資訊標頭字段,可用來判斷使用者是否已轉送訊息。 系統會使用 [重新傳送標頭] 字段,讓收件者的郵件顯示為原始發件者直接傳送的訊息。 收件者可以檢視郵件標頭,以探索轉寄郵件的人員。 重新傳送標頭欄位定義於 RFC 2822 的 3.6.6 節中。
當必須傳輸通訊群組擴充的歷程記錄時。
控制收件者擴充
當擴充的收件者數目太大時,分類器會將郵件分割成多個複本。 這麼做是為了減少訊息擴充期間的系統資源使用量。 郵件中的信封收件者數目上限是由應用程式組態檔中的 %ExchangeInstallPath%Bin\EdgeTransport.exe.config
ExpansionSizeLimit 金鑰所控制。 預設值為 1000。
警告
建議您不要在生產環境中修改 Exchange 傳輸伺服器上的 ExpansionSizeLimit 金鑰值。
收件者解析診斷
收件者解析的報告和診斷資訊是由性能計數器和訊息追蹤記錄專案所提供。 這些來源可協助您識別並診斷收件者解析的問題。
收件者解析性能計數器
下表描述收件者解析可用的性能計數器。
計數器名稱 | 顯示名稱 | 描述 |
---|---|---|
AmbiguousRecipientsTotal | 模棱兩可的收件者 | 這是在收件者解析期間偵測到的模棱兩可收件者總數。 模棱兩可的收件者是具有相符 legacyExchangeDN Active Directory 屬性或相符 proxyAddresses Active Directory 屬性的不同收件者。 |
AmbiguousSendersTotal | 模棱兩可的發件者 | 這是在收件者解析期間偵測到的模棱兩可發件人數目。 模棱兩可的發件者是具有相符 legacyExchangeDN Active Directory 屬性或相符 proxyAddresses Active Directory 屬性的不同發件者。 |
FailedRecipientsTotal | 失敗的收件者 | 這是在收件者解析期間偵測到的失敗收件者數目。 |
LoopRecipientsTotal | 迴圈收件者 | 這是收件者因收件者迴圈而無法解析收件者的數目。 |
MessagesChippedTotal | 已裁剪的訊息 | 這是在收件者解析期間建立的相同郵件複本總數,用來控制單一郵件中的信封收件者數目。 在 Exchange 中,此程式稱為 「切入」。 |
MessagesCreatedTotal | 建立的訊息 | 這是收件者解析期間所建立的訊息數目。 |
MessagesRetriedTotal | 重試的訊息 | 這是已排程在收件者解析期間重試的訊息數目。 |
UnresolvedOrgRecipientsTotal | 無法解析的組織收件者 | 這是在收件者解析期間偵測到的授權網域中無法解析的收件者數目。 |
UnresolvedOrgSendersTotal | 無法解析的組織發件者 | 這是在收件者解析期間偵測到的授權網域中無法解析的發件人數目。 |
郵件追蹤記錄中的收件者解析事件
下表描述郵件追蹤記錄中所寫入的收件者解析事件。
訊息追蹤事件 | 描述 |
---|---|
擴大 | 此事件表示已展開通訊群組。 |
重定向 | 此事件表示傳送給信箱收件者的郵件,或已啟用郵件功能的公用資料夾收件者,已重新導向至 ForwardingAddress 參數所指定的替代收件者。 |
解決 | 此事件表示收件者電子郵件地址已變更為對應 Active Directory 收件者物件的主要 SMTP 電子郵件位址。 |
轉移 | 此事件表示發生訊息混淆或擷取。 |
如需訊息追蹤的詳細資訊,請參閱 訊息追蹤。