Mapping addresses on inbound messages is similar to mapping addresses on outbound messages. The gateway must convert every address in the message into a form that Microsoft Exchange Server understands. Ideally, this form is the native Microsoft Exchange Server (EX) address format. At least one recipient on an inbound message should have a native address that corresponds to it. If that is not the case then there are no recipients that the gateway can deliver the message to.
The gateway must deal with three classes of addresses in an inbound message:
Local recipients Local recipients are those for which there is a native Microsoft Exchange Server address corresponding to the recipient address in the inbound message. The gateway must convert these addresses to their native EX addresses before delivering the message to the server.
Foreign recipients Foreign recipients are those whose addresses in the inbound message do not correspond to any native Microsoft Exchange Server addresses. The gateway must create one-off addresses to represent these recipients before delivering the message to the server.
Originator The gateway must create a one-off address for the message’s originator before delivering the message to the server.
All MAPI-based systems, including Microsoft Exchange Server, require that the originator and each recipient of a message have a PR_ENTRYID property. However, the originator of a message from a foreign message system may not have entry ID in the server’s global address list. For a message coming from a foreign system to Microsoft Exchange Server, the gateway can:
Use the address lookup function HrGWResolveAddress with the proxy address and the foreign system address type to look up the PR_ENTRYID property for the originator and each recipient.
Attempt to generate a PR_ENTRYID property using the MAPI IAddrBook::CreateOneOff method if the previous action fails.
If the gateway cannot find or create the PR_ENTRYID property, it must take appropriate action as follows:
Originator Generate a nondelivery report for each Responsibility-TRUE recipient, and send the nondelivery report to the originator. This is because the gateway cannot generate a return address for replies to the message. (See Reports for information about gateway reports.) Create a nondelivery report for each Responsibility-TRUE recipient.
Responsibility-TRUE recipient Generate a nondelivery report for the recipient.
Responsibility-FALSE recipient Drop the recipient from the message or place it in a purely textual field.