A pretty cool new feature was introduced in Exchange 2007 called transport rules. Transport rules enable the administrator to define rules (funnily enough) which effect message routing or restrict content. For example any incoming message for mailbox Joe Bloggs can be redirected to mailbox Mary Smith. As with any new feature there is always some gotchas, and lucky us came across one.
We applied a new transport rule which adds a new recipient in the to field when an email was sent to a particular mailbox. The new recipient is an external mail contact. The basic premise behind this was an existing mailbox was in use for a particular purpose and was well know to the end users. We needed to allow the end users to continue using this email address and for the mailbox to still receive the mail, but also for the emails to be sent to an external email address for processing.
Hence we created an external mail contact and a new transport rule to include the external mail contact for all mail sent to the internal mailbox. When we tested the transport rule it was working great except the the external email address was wrong so we were getting bounces back. So we went into the mail contact and changed the external email address, however the transport rule was still sending the email to the old address. At this point we were thinking that the transport rule needed refreshing, but this is where we hit the gotcha. In the Exchange Management Console the edit option was no longer available for the Transport rule. Even in the Exchange Management Shell a Get-TransportRule command was showing nothing in the conditions or actions.
It turns out if you modify the email address of one of the effected mailboxes/mail contacts then you can no longer modify the transport rule. The transport rule will continue to operate but using the previous values. The only way around this is to delete the transport rule and recreate it.