Assume that we have a web server named www.unit.domain.com [1], that is using the Exchange server mail.unit.domain.com for relaying all mails. The users mailaddress is user@unit.domain.com [2]. Exchange in turn uses an SMTP server named mail.domain.com to send mail and here resides the mail box for user@domain.com [3]. Yes, I know a bit complicated, not straightforward, well but that's how life is.
In this case I didn’t want the user to reply to the originating mail address, that is user@unit.domain.com [4], but to the user@domain.com [5] mail box. When trying to rewrite the headers it worked fine as long as I used an Exchange-compatible client, for example the web mail. But when sending via ordinary SMTP programatically, Exchange refused to change the headers. I can see that this is a precaution against relaying and spam. But shouldn't this be an integrated feature that the user could easily turn on or off especially as it is quite hard to find Linux based applications using Exchange connectivity?
In order to be able rewrite the email-address for external systems using Exchange 2003 as an SMTP server you have to install a little nifty utility called Microsoft Exchange Server Address Rewrite Tool.
You can get it at www.microsoft.com [6].