Exchange Server 中的 DSN 和 DDR 程式

如同舊版 Exchange,Exchange Server 使用傳遞狀態通知 (也稱為 DSN、非傳遞報告、DDR 或退回的郵件) ,以提供傳遞狀態和失敗通知訊息給郵件寄件者。 如需 DDR 的詳細資訊,請參閱 Exchange Server 中的 DSN 和 DDR

您可以使用 Exchange 中包含的預設NDR,也可以使用 Exchange 管理命令介面來建立具有自定義文字的NDR,以符合組織的需求。 自定義 NDR 文字會取代指定增強狀態代碼或配額事件的預設文字。 如果您移除自定義 NDR,則會使用預設 NDR 文字 (您無法完全移除預設 NDR) 。 您也可以停用自定義 NDR 來保留它們,但不能在使用預設 NDR 文字) (使用它們。

開始之前有哪些須知?

  • 每個程序的預估完成時間:少於10分鐘。

  • 本主題的主要焦點是自定義 NDR 文字,以取代 Exchange 所使用的預設 NDR 文字。 您可以為其他增強狀態代碼值建立新的 NDR (例如 5.999.999) ,但如果 Exchange 未使用增強狀態代碼,則沒有人會看到這些NDR。 您可以使用一系列自定義增強狀態代碼作為郵件流程規則動作的一部分, (也稱為傳輸規則) 。 如需詳細資訊,請參閱 Exchange Server 中的郵件流程規則動作

  • 本主題中的程式可在信箱伺服器和Edge Transport Server上取得。

  • 您無法將 Exchange 系統管理中心 (EAC) 用於本主題中的大部分程式。 您必須使用 Exchange 管理命令介面。 若要了解如何在內部部署 Exchange 組織中開啟 Exchange 管理命令介面,請參閱 Open the Exchange Management Shell

  • 您必須已獲指派權限,才能執行此程序或這些程序。 若要查看您需要的權限,請參閱 郵件流程權限主題中的「DSN」項目。

  • 如需適用於此主題中程序的快速鍵相關資訊,請參閱 Exchange 系統管理中心的鍵盤快速鍵

提示

有問題嗎? 在 Exchange 論壇中尋求協助。 此論壇的網址為:Exchange ServerExchange OnlineExchange Online Protection

使用 Exchange 管理命令介面來檢視所有預設的NDR

若要將所有語言中所有預設 DDR 的清單輸出到名為 C:\My Documents\Default NDRs.html 的 HTML 檔案,請執行下列命令:

Get-SystemMessage -Original | Select-Object -Property Identity,DsnCode,Language,Text | ConvertTo-Html | Set-Content -Path "C:\My Documents\Default NDRs.html"

注意:您應該將清單輸出至檔案,因為清單很長,而且如果您未安裝必要的語言套件,就會收到錯誤。

如需詳細的語法和參數資訊,請參閱 Get-SystemMessage

使用 Exchange 管理命令介面來檢視自定義的 RDR

若要檢視組織中所有自定義 RDR 的摘要清單,請執行下列命令:

Get-SystemMessage

注意:根據預設,沒有自定義的 RDR,因此此命令不會傳回任何結果。

若要檢視自定義 NDR 的詳細資訊,請使用下列語法:

Get-SystemMessage -Identity <NDRIdentity>

For an explanation of the available <NDRIdentity> values, see the Identity values for NDRs section in this topic.

此範例會針對以英文傳送給內部發件人的增強狀態代碼 5.1.2,傳回自定義 NDR 的詳細資訊。 如果語言、對象和增強狀態代碼的組合沒有自定義 NDR,您將會收到錯誤。

Get-SystemMessage En\Internal\5.1.2 | Format-List

此範例會針對信箱上的 ProhibitSendReceive 配額,傳回自定義英文 NDR 的詳細資訊。 如果此語言和配額組合沒有自定義 NDR,您將會收到錯誤。

Get-SystemMessage En\ProhibitSendReceiveMailBox | Format-List

如需詳細的語法和參數資訊,請參閱 Get-SystemMessage

建立自定義NDR

使用 Exchange 管理命令介面建立增強狀態代碼的自定義 NDR

若要建立增強狀態代碼的自定義 NDR,請使用下列語法:

New-SystemMessage -Internal <$true | $false> -Language <Locale> -DSNCode <x.y.z> -Text "<NDR text>"

這些值為:

  • 內部:控制 NDR 是否傳送給內部或外部寄件者。 針對內部寄件者,請使用 值 $true。 若為外部寄件者,請使用 值 $false。 例如,在內部寄件人的自定義文字中,您可以包含您不想包含在外部寄件者之 NDR 中的技術支援中心聯繫人資訊。
  • Language: For the list of available languages, see the Supported languages for NDRs section in this topic.
  • DSNCode:增強的狀態代碼。 有效值為 4。x.y 或 5。x.y ,其中 xy 是一到三位數的數位。
  • 文字:您可以使用純文字或 HTML 格式。 如需詳細資訊,請參閱本主題 中的 HTML 標籤和 NDR 中的特殊字元 一節。

此範例會為增強狀態代碼 5.1.2 建立自定義純文本 NDR,並以英文傳送給外部發件者。

New-SystemMessage -Internal $false -Language En -DSNCode 5.1.2 -Text "You tried to send a message to a disabled mailbox that's no longer accepting messages. Please contact your System Administrator for more information."

此範例會為增強狀態代碼 5.1.2 建立自定義 HTML NDR,並以英文傳送給內部發件者。

New-SystemMessage -DSNCode 5.1.2 -Internal $true -Language En -Text 'You tried to send a message to a <B>disabled</B> mailbox. Please visit <A HREF="https://it.contoso.com">Internal Support</A> or contact &quot;InfoSec&quot; for more information.'

如需詳細的語法和參數資訊,請參閱 New-SystemMessage

使用 Exchange 管理命令介面建立配額的自定義 NDR

若要建立配額的自定義 NDR,請使用下列語法:

New-SystemMessage -Language <Locale> -QuotaMessageType <Quota> -Text "<NDR text>"

這些值為:

此範例會針對信箱上的 ProhibitSendReceive 配額建立自定義英文純文本 NDR。

New-SystemMessage -Language En -QuotaMessageType ProhibitSendReceiveMailBox -Text "Your mailbox is full, and can't send or receive messages. Delete any unwanted large messages (messages with attachments) and empty your Deleted Items folder"

如需詳細的語法和參數資訊,請參閱 New-SystemMessage

如何知道這是否正常運作?

若要確認您已成功建立自訂 NDR,請執行下列步驟:

  • 執行下列命令,並確認屬性值:

    Get-SystemMessage | Format-List Identity,DsnCode,Language,Text
    
  • 傳送測試訊息,以產生您設定的自定義 NDR。

使用 Exchange 管理命令介面修改自訂的 RDR

若要修改自定義的 NDR,請使用下列語法:

Set-SystemMessage -Identity <NDRIdentity> [-Text "<NDR text>"] [-Original]

For an explanation of the available <NDRIdentity> values, see the Identity values for NDRs section in this topic. 如需 NDR 文字>值的<說明,請參閱本主題中的 HTML 標籤和 NDR 中的特殊字元一節。

本範例會針對以英文傳送給內部發件人的增強狀態代碼 5.1.2,變更自定義 NDR 中的文字。

Set-SystemMessage -Identity En\Internal\5.1.2 -Text "The mailbox you tried to send an email message to is disabled and is no longer accepting messages. Please contact the Help Desk at extension 123 for assistance."

本範例會針對信箱上的 ProhibitSendReceive 配額,變更自定義英文 NDR 中的文字。

Set-SystemMessage -Identity En\ProhibitSendReceiveMailBox -Text "Your mailbox is full. Delete large messages and empty your Deleted Items folder."

此範例會停用指定的自定義 NDR。 自定義 NDR 會保留下來,並出現在 Get-SystemMessage 的結果中,但會改用預設 NDR。

Set-SystemMessage -Identity En\Internal\5.1.2 -Original

注意:如果沒有對應的預設 NDR,當您使用 Original 參數時會收到錯誤。

如需詳細的語法和參數資訊,請參閱 Set-SystemMessage

如何知道這是否正常運作?

若要確認您已成功修改自定義 NDR,請以適當的值取代 <NDRIdentity> ,然後執行此命令來驗證屬性值:

Get-SystemMessage -Identity <NDRIdentity> | Format-List

使用 Exchange 管理命令介面移除自定義的 RDR

若要移除自定義 NDR,請使用下列語法:

Remove-SystemMessage -Identity <NDRIdentity>

For an explanation of the available <NDRIdentity> values, see the Identity values for NDRs section in this topic.

本範例會移除以英文傳送給內部發件人的增強狀態代碼 5.1.2 的自定義 NDR。

Remove-SystemMessage -Identity En\Internal\5.1.2

本範例會移除信箱上 ProhibitSendReceive 配額的自定義英文 NDR。

Remove-SystemMessage -Identity En\ProhibitSendReceiveMailBox

如需詳細的語法及參數資訊,請參閱 Remove-SystemMessage

如何知道這是否正常運作?

若要確認您已成功移除自訂 NDR,請執行此命令以確認未列出自訂 NDR:

Get-SystemMessage

將 NDR 複本轉寄至 Exchange 收件者信箱

您可以設定 Exchange 組織將 DDR 複本傳送給 Exchange 收件者。 不過,根據預設,不會將信箱指派給 Exchange 收件者,因此會捨棄任何傳送給 Exchange 收件者的郵件。 若要將 NDR 複本傳送至 Exchange 收件者信箱,您需要:

  1. 將信箱指派給 Exchange 收件者。

  2. 指定您想要監視的增強狀態代碼, (不是配額) 。

步驟 1:使用 Exchange 管理命令介面將信箱指派給 Exchange 收件者

注意:由於訊息數量龐大,建議您為 Exchange 收件者使用專用信箱。 如需建立信箱的詳細資訊,請參閱在 Exchange 系統管理中心建立共用信箱在 Exchange Server 中建立使用者信箱

若要將信箱指派給 Exchange 收件者,請使用下列語法:

Set-OrganizationConfig -MicrosoftExchangeRecipientReplyRecipient <MailboxIdentity>

此範例會將名為 「Contoso System Mailbox」 的現有信箱指派給 Exchange 收件者。

Set-OrganizationConfig -MicrosoftExchangeRecipientReplyRecipient "Contoso System Mailbox"

步驟 2:指定您想要監視的增強狀態代碼

  • 您可以使用 EAC 或 Exchange 管理命令介面。

  • 根據預設,即使未指定增強狀態代碼,這些程式碼的NDR 也會自動傳送給 Exchange 收件者:

    • 5.1.4
    • 5.2.0
    • 5.2.4
    • 5.4.4
    • 5.4.6
    • 5.4.8
  • 您只能指定增強狀態代碼。 您無法指定配額。

使用 EAC 指定要監視的增強狀態代碼

如需 EAC 的詳細資訊,請參閱 Exchange Server 中的 Exchange 系統管理中心

  1. 在 EAC 中,移至 [郵件流程>接收連接器]

  2. 按兩下 [ 更多選項 ] ([更多選項] 圖示。) 並選取 [組織傳輸設定]

  3. 在開啟 的 [組織傳輸設定] 視窗中 ,按兩下 [ 傳遞] 索引標籤 。在 [DSN 程式代碼] 區段中 ,執行下列一或多個步驟:

    • 若要新增專案,請輸入您要監視 (4 的增強狀態代碼。 <y.z> 或 5。 <y.z>) ,然後按兩下 [ 新增 (] 圖示。) 。 視需要重複此步驟多次。

    • 若要修改現有的專案,請選取它,按兩下 [ 編輯 (編輯] 圖示。) ,然後以內嵌方式修改它。

    • 若要移除現有的專案,請選取它,然後按兩下 [移除 (移除] 圖示。) ] 。

    完成後,按一下 [儲存]

使用 Exchange 管理命令介面來指定要監視的增強狀態代碼

若要將增強的狀態代碼新增至監視器,以取代任何現有的值,請使用下列語法:

Set-TransportConfig -GenerateCopyOfDSNFor <x.y.z>,<x.y.z>...

此範例會設定 Exchange 組織將增強狀態代碼值 5.7.1、5.7.2 和 5.7.3 的所有 NDR 轉寄給 Exchange 收件者。

Set-TransportConfig -GenerateCopyOfDSNFor 5.7.1,5.7.2,5.7.3

若要新增或移除專案而不修改任何現有的值,請使用下列語法:

Set-TransportConfig -GenerateCopyOfDSNFor @{Add="<x.y.z>","<x.y.z>"...; Remove="<x.y.z>","<x.y.z>"...}

本範例會新增增強狀態代碼 5.7.5,並從轉送至 Exchange 收件者的現有 NDR 清單中移除 5.7.1。

Set-TransportConfig -GenerateCopyOfDSNFor @{Add="5.7.5"; Remove="5.7.1"}

如何知道這是否正常運作?

若要確認您已成功設定要傳送至 Exchange 收件者信箱的 NDR 複本,

  • 執行下列命令,並確認屬性值:

    Get-TransportConfig | Format-List GenerateCopyOfDSNFor
    
  • 監視 Exchange 收件者信箱,以查看是否在該處傳遞包含指定增強狀態代碼的 NDR。

NDR 的識別值

NDR 的身分識別會使用下列其中一種格式:

  • 增強狀態代碼的 DDR<Language>\<Internal |External>\ <DSNcode>。 例如,En\Internal\5.1.2Ja\External\5.1.2

    • <DSNcode>:有效值為 4。x.y 或 5。x.y ,其中 xy 是一到三位數的數位。 若要產生 Exchange 所使用的增強狀態代碼清單,請參閱本主題稍早的 使用 Exchange 管理命令介面來檢視所有預設的NDR 一節。
    • 內部或外部:您可以在內部或外部寄件者的 NDR 中使用不同的文字。
    • <Language>: For the list of supported languages, see the Supported languages for NDRs section in this topic.
  • 配額的 NDR<Language>\ <QuotaMessageType>。 例如,En\ProhibitSendReceiveMailBox

    • <Language>: For the list of supported languages, see the Supported languages for NDRs section in this topic.

    • <QuotaMessageType>:有效值為:

      您可以使用 and 比較運算子來指定多個準則。不是以整數表示的內容值必須用引號 (") 括住。

      • ProhibitSendReceiveMailBox:信箱超過其 ProhibitSendReceiveQuota 限制。
      • ProhibitSendMailbox:信箱超過其 ProhibitSendQuota 限制。
      • WarningMailbox:信箱在設定 ProhibitSendQuotaProhibitSendReceiveQuota 限制時超過其IssueWarningQuota限制。
      • WarningMailboxUnlimitedSize:信箱未ProhibitSendQuota設定 或 ProhibitSendReceiveQuota 限制時,超過其IssueWarningQuota限制。

      WarningMailboxUnlimitedSize:信箱未設定 ProhibitSendQuota 或 ProhibitSendReceiveQuota 限制時超過其 IssueWarningQuota 限制。

      • ProhibitPostPublicFolder:公用資料夾超過其 ProhibitPostQuota 限制。
      • WarningPublicFolder:公用資料夾在設定限制時ProhibitPostQuota超過其IssueWarningQuota限制。
      • WarningPublicFolderUnlimitedSize:公用資料夾未設定限制時ProhibitPostQuota超過其IssueWarningQuota限制。

      WarningPublicFolderUnlimitedSize:公用資料夾未設定其 ProhibitPostQuota 限制時超過其 IssueWarningQuota 限制。

      • ProhibitReceiveMailboxMessagesPerFolderCount:信箱超過其 MailboxMessagesPerFolderCountReceiveQuota 限制。
      • WarningMailboxMessagesPerFolderCount:信箱在設定限制時ailboxMessagesPerFolderCountReceiveQuota超過其MailboxMessagesPerFolderCountWarningQuota限制。
      • WarningMailboxMessagesPerFolderUnlimitedCount:信箱未設定限制時MailboxMessagesPerFolderCountReceiveQuota超過其MailboxMessagesPerFolderCountWarningQuota限制。

      WarningMailboxMessagesPerFolderUnlimitedCount:信箱未設定 MailboxMessagesPerFolderCountReceiveQuota 限制時超過其 MailboxMessagesPerFolderCountWarningQuota 限制。

      • ProhibitReceiveFolderHierarchyChildrenCountCount:信箱超過其 FolderHierarchyChildrenCountReceiveQuota 限制。
      • WarningFolderHierarchyChildrenCount:信箱在設定限制時FolderHierarchyChildrenCountReceiveQuota超過其FolderHierarchyChildrenCountWarningQuota限制。
      • WarningFolderHierarchyChildrenUnlimitedCount:信箱未設定限制時FolderHierarchyChildrenCountReceiveQuota超過其FolderHierarchyChildrenCountWarningQuota限制。
      • ProhibitReceiveFoldersCount:信箱超過其 FoldersCountReceiveQuota 限制。
      • WarningFoldersCount:信箱在設定限制時FoldersCountReceiveQuota超過其FoldersCountWarningQuota限制。
      • WarningFoldersCountUnlimited信箱未設定限制時FoldersCountReceiveQuota超過其FoldersCountWarningQuota限制。

      WarningFoldersCountUnlimited 信箱未設定 FoldersCountReceiveQuota 限制時超過其 FoldersCountWarningQuota 限制。

      • ProhibitReceiveFolderHierarchyDepth:信箱超過其 FolderHierarchyDepthWarningQuota 限制。
      • WarningFolderHierarchyDepth:信箱在設定限制時FolderHierarchyDepthReceiveQuota超過其FolderHierarchyDepthWarningQuota限制。
      • WarningFolderHierarchyDepthUnlimited::信箱未設定限制時FolderHierarchyDepthReceiveQuota超過其FolderHierarchyDepthWarningQuota限制。

支援 NDR 的語言

下表列出您可以在自定義 NDR 中使用之程式代碼的支持語言。

語言代碼 語言
Af 南非荷蘭文
am-ET 阿馬利 (亞馬)
ar 阿拉伯文
as-IN 印度 ()
bg 保加利亞文
bn-BD 孟加拉文 (孟加拉)
bn-IN 孟加拉文 (印度)
bs-Cyrl-BA 波士尼亞 (斯拉夫、波士尼亞和赫塞哥維納)
bs-Latn-BA 波士尼亞 (拉丁、波士尼亞和赫塞哥維納)
ca 加泰蘭文
cs 捷克文
cy-GB 英國 (英國)
da 丹麥文
de 德文
el 希臘文
en 英文
es 西班牙文
et 愛沙尼亞文
eu Basque
波斯文
fi 芬蘭文
fil-PH 菲律賓文 (菲律賓)
fr 法文
ga-IE 愛爾蘭 (愛爾蘭)
gl 加利西亞文
古吉拉特文
ha-Latn-NG 哈沙 (拉丁文、奈及利亞)
希伯來文
你好 印度文
hr 克羅埃西亞文
hu 匈牙利文
Hy 亞美尼亞文
id 印尼文
ig-NG Igbo (奈及利亞)
冰島文
義大利文
iu-Latn-CA Inuktitut (Latin、Canada)
ja 日文
喬治亞文
Kk 哈薩克文
km-KH Khmer ()
kn 坎那達文
ko 韓文
貢根文
肯塔基州 吉爾吉斯文
lb-LU 盧森堡 (斯)
lo-LA 嬱國 (弅 人員 幅嫍共和國)
lt 立陶宛文
lv 拉脫維亞文
mi-NZ 紐西蘭 ()
Mk 馬其頓文
ml-IN 馬來亞蘭 (印度)
先生 馬拉提文
女士 Malay
ms-BN 馬來文 (汶萊)
mt-MT (金鑰)
ne-NP 尼泊爾 (日)
nl 荷蘭文
nn-NO 挪威文 (尼洛斯克)
挪威文
nso-ZA Sesotho sa Leboa (南非)
or-IN 印度 ()
Pa 旁遮普語
pl 波蘭文
ps-AF Pashto ()
pt 葡萄牙文
pt-PT 葡萄牙文 (葡萄牙)
qut-GT K'iche ()
quz-PE 蓋楚瓦文 (秘魯)
ro 羅馬尼亞文
ru 俄文
rw-RW Kinyarwanda (盧比特)
si-LK 印度文 (斯)
sk 斯洛伐克文
sl 斯洛維尼亞文
平方 阿爾巴尼亞文
sr 塞爾維亞文
sr-Cyrl-CS 塞爾維亞文 (斯拉夫、塞爾維亞)
sv 瑞典文
西 南部 史瓦希里文
坦米爾文
te 特拉古文
th 泰文
tn-ZA 南非 ()
tr 土耳其文
Tt 韃靼文
uk 烏克蘭文
烏都文
uz 烏茲別克語
vi 越南文
wo-SN Wolof ()
xh-ZA isiXhosa (南非)
yo-NG 約魯巴 (奈及利亞)
zh-Hans 中文 (簡體)
zh-Hant 中文 (繁體)
zh-HK 中文 (香港特別行政區)
zu-ZA isiZulu (南非)

若要控制 DDR 中使用的語言,您可以在 Set-TransportConfig Cmdlet 上使用這些參數:

  • ExternalDsnDefaultLanguage:指定要在外部NDR 上使用的默認語言。 默認值是空白 ($null) ,這表示使用預設的 Windows 伺服器語言。
  • InternalDsnDefaultLanguage:指定要在內部NDR 上使用的默認語言。 默認值是空白 ($null) ,這表示使用預設的 Windows 伺服器語言。
  • ExternalDsnLanguageDetectionEnabled
    • $true:Exchange 嘗試以與原始訊息相同的語言傳送外部 NDR。 這是預設值。
    • $false:外部 NDR 的語言偵測已停用,NDR 語言是由 ExternalDsnDefaultLanguage 參數所決定。
  • InternalDsnLanguageDetectionEnabled
    • $true:Exchange 嘗試以與原始訊息相同的語言傳送內部 NDR。 這是預設值。
    • $false:已停用內部 NDR 的語言偵測,NDR 語言是由 InternalDsnDefaultLanguage 參數決定。

HTML 標籤和 NDR 中的特殊字元

您在 NDR 中包含的自訂文字最多可以包含 512 個字元,包括文字和 HTML 標記。 例如,您可以包含問題的詳細描述、技術支援人員的聯繫人資訊,以及支援部門網站的連結。

若要控制 Exchange 是否使用 HTML 或 DDR 中的純文字,您可以在 Set-TransportConfig Cmdlet 上使用這些參數:

  • ExternalDsnSendHtml
    • $true:在外部寄件人的 NDR 中使用 HTML 標籤。 這是預設值。
    • $false:在外部寄件人的 NDR 中使用純文字。
  • InternalDsnSendHtml
    • $true:在內部寄件人的 NDR 中使用 HTML 標籤。 這是預設值。
    • $false:在內部寄件人的 NDR 中使用純文字。

下表描述您可以在 NDR 文字中使用的 HTML 標記。

描述 HTML 標籤
粗體 <B></B>
斜體 <EM></EM>
換行符 <BR>
段落 <P></P>
超連結 <A HREF="url"></A>

注意:因為此標記包含雙引號,所以如果您在自定義文字中使用此標記,則必須使用單引號 (不要在完整文字字串周圍) 雙引號。 否則,您會收到錯誤。

NDR 中的某些字元需要逸出程式代碼,才能以字面方式識別它們,而不是透過 NDR 中的函式來識別它們。 下表說明這些字元:

字元 逸出程式碼
< &lt;
> &gt;
" &quot;
& &amp;

例如,如果您想要 NDR 顯示文字 Please contact the Help Desk at <1234>.,您需要值 "Please contact the Help Desk at &lt;1234&gt;."

這是使用 HTML 標記和逸出程式代碼的自定義 NDR 文字值範例。

'You tried to send a message to a <B>disabled</B> mailbox. Please visit <A HREF="https://it.contoso.com">Internal Support</A> or contact &quot;InfoSec&quot; for more information.'