Skip to content

Releases: kavejo/TransportAgents

Change of logic for recipient determination

15 Oct 08:11
Compare
Choose a tag to compare

Documentation

Documentation on: https://github.com/kavejo/TransportAgents/wiki

Information

This release implements a substantial change. The HeaderReroutingAgent used to determine if any given recipient was internal or external by relying on the RecipientCategory.IsSameOrganization property; this however under certain circumstances, such as when the Transport Agent runs on Edge Servers, might have been incorrectly populated for internal addresses not associated with a recipient in the organization (such as when a domain is shared across multiple organizations and set as InternalRelay).

As such, the HeaderReroutingAgent now checks, for each recipient, if the recipient domain (domain part of the SMTP Address) is an AcceptedDomain within the organization, if so, it marks the message as internal regardless of how Transport categorized it.

In the HeaderReroutingAgent class is also now available a check that validate if a recipient is internal based on the fact it can be resolved from the AddressBook. Whilst this value is currently not used, this is anyway surfaced on the Event Log for messages that are processed as it can ease investigations in case any troubleshooting is necessary.

Please do review the documentation, available on the wiki, for the agent(s) you plan to deploy for more information.

Note

The DLL is now digitally signed and timestamped.

More debug information in HeaderReroutingAgent

11 Oct 11:19
Compare
Choose a tag to compare

Documentation

Documentation on: https://github.com/kavejo/TransportAgents/wiki

Information

Some minor changes have been implemented this time, due to customers' demand. These are:

  1. As Azure Communication Services does not retain the "Received" headers when a message transits via the service, these information have been moved to "X-TransportAgent-ProcessHop-*" headers, one per "Received" header hop
  2. Considering one way to use this agent is via inserting the "X-HeaderReroutingAgent-Target" header via rule, history of rules that triggered for the processed message have been stored on "X-TransportAgent-ProcessRules"; this contains the value of "X-MS-Exchange-Organization-Rules-Execution-History" which otherwise ACS will drop in transit.
  3. Minor refactoring to the list of the headers to retain, only catering now headers that ACS will allow.

Please do review the documentation, available on the wiki, for the agent(s) you plan to deploy for more information.

Note

The DLL is now digitally signed and timestamped.

Improved reliability of HeaderReroutingAgent

07 Oct 19:29
Compare
Choose a tag to compare

Documentation

Documentation on: https://github.com/kavejo/TransportAgents/wiki

Information

Multiple changes have been implemented this time, due to customers' demand. These are:

  1. Debug logging is now more verbose and there is a better explanation on the conditions that led to a message be or not to be processed
  2. Implemented the ability to retain Exchange headers such as X-MS-Exchange-Organization-* and X-MS-Exchange-CrossTenant-* that should help avoiding mail loops
  3. Implemented logic to detect mail loops (by the presence of the X-TransportAgent-Name header), and if the loop is detected then the agent avoids processing the message (it had processed it already) and raises a warning in the Event Log; this should facilitate the identification of mail loops in case of mail-flow misconfiguration in hybrid environemnts.
  4. The Transport Agent now explicitly check if any given message is a System Message (such as NDRs) and, if so, it avoids processing the message.
  5. Introduced the ability to finely control verbose logging. The registry key "DebugEnabled" is preserved and enables logging across all methods (override other settings) else, if this is false or missing, then logging can be enabled or disabled per method by leveraging the DebugEnabled-OverrideRoutingDomain, DebugEnabled-OverrideSenderAddress, and DebugEnabled-RemoveAllHeaders registry keys.

Please do review the documentation, available on the wiki, for the agent(s) you plan to deploy for more information.

Improved Debug Logging

26 Jun 08:36
Compare
Choose a tag to compare

Documentation

Documentation on: https://github.com/kavejo/TransportAgents/wiki

Information

Improved the logging management for the HeaderReroutingAgent. Now debug logging is controlled by a registry key and disabled by default. Verbose/Debug logging will need to be manually enabled if/when necessary. This minimized the data written to Event Log and ensured that verbose details are only logged when requested.

Please do review the documentation, available on the wiki, for the agent(s) you plan to deploy for more information.

Initial Release

11 Jun 09:24
Compare
Choose a tag to compare

Documentation

Documentation on: https://github.com/kavejo/TransportAgents/wiki

Information

With a growing demand of the HeaderReroutingAgent sample code, to help Exchange Hybrid and Exchange On-Premises customers to leverage Azure Communication Servcies Email, this release has been created to provide the Transport Agent DLL file to those who are unfamiliar with the build process.

Please do review the documentation, available on the wiki, for the agent(s) you plan to deploy for more information.