Bifurcation
Bifurcation (also known as forking) refers to the process of creating multiple copies of a given message. All these copies will have the same message content, but different envelopes.
Bifurcation occurs through Microsoft Exchange while messages are in transit.
There are different purposes for which bifurcation can occur to a message in transit, such as (including but not limited) recipient-based customization, routing, security, and performance.
Bifurcation enables customization of the message based on the recipient. Specifically, the need for the occurrence of bifurcation to customize the message is created by the following scenarios:
- When policies apply to a subset of the recipients: For example, if a policy is in place to add a disclaimer to messages sent to external recipients, Exchange will bifurcate the message, resulting in:
- One copy for the internal recipients with the original message content, and
- A second copy for the external recipients with the modified content and disclaimer.
- When recipients require different message settings: Exchange will bifurcate a message when the read receipts setting is enabled for some recipients and blocked for others.
- When the message sender in MAIL FROM in the message envelope is updated: For example, a message is sent to a user and a distribution group. In such a case, if the group has been configured to not report non-delivery reports (NDRs), the message needs to be bifurcated since the copy sent to the group will have the envelope sender (MAIL FROM:) set to <> (the null reverse path) to suppress NDRs.
- When auto-response messages [for example, delivery status notifications (DSNs), out of office (OOF) messages, and recall reports] need to be suppressed.
- When alternative recipients are expanded.
- When a "Resent-From:" header field is added to the message header. Resent header fields are informational header fields that can be used to determine whether a message has been forwarded by a user. Resent header fields make the message appear to the recipient in such a way that it was sent directly by the original sender. The recipient can view the message header to discover who forwarded the message. Resent header fields are defined in section 3.6.6 of RFC 5322.
- When the expansion history of the group needs to be transmitted.
Bifurcation enables routing, and the need for the occurrence of bifurcation to route the message is created by the following scenarios:
- When mail flow rules (also known as Transport Rules) are applicable to only a subset of recipients.
- When the recipients have different next hop domains.
Features such as anti-spam and other security-related ones might perform forking for security and threat protection purposes.
Bifurcation facilitates good performance, and the need for the occurrence of bifurcation to optimize performance is created by the following scenario:
- To limit the number of envelope recipients in a single message: Expanding large groups can generate thousands of individual recipients. Instead of creating a single copy of the message that has thousands of envelope recipients, Exchange creates multiple copies of the same message, which have a limited number of recipients in the message envelope.
Bifurcation can impact the way some of our Exchange features work, and therefore it's important to understand how this impact can change some of their behavior.
A few implications of the occurrence of bifurcation are described in the following table:
It can affect | How? |
---|---|
Mail flow rules (also known as Transport Rules) | Rule conditions (or exceptions) that are met/fulfilled by the original message might not be met/fulfilled by some of the forks. Rule actions will be executed independently for all the forks (for example, generating a notification or incident report for each copy of the message). |
Moderation | Each copy of the message will result in a separate approval request. |
Journaling | Multiple copies of a message will be archived, leading to increased storage costs. |
Data Loss Prevention (DLP) Policies | Policies that might have applied to the original message might no longer apply to some of the forks. Rule actions will be executed independently for all the forks (for example, generating a notification or incident report for each copy of the message). |