In VPOP3 a Mapping is a way of altering the behaviour of an email address.
By default, if you have configured VPOP3 to handle the domain mycompany.com and have a user called fred, then emails addressed to firstname.lastname@example.org (and only email@example.com) will be put into fred's mailbox.
Sometimes you may want to change this behaviour, and this is where Mappings are used.
For instance, with Mappings you can:
If you create a Mapping of fred → kate, then any messages addressed to firstname.lastname@example.org will be sent to kate instead.
If you create two Mappings:
•fred → kate
•fred → fred
then any messages addressed to email@example.com will be sent to both kate and fred.
You can specify as many Mappings for an email address as you wish, and VPOP3 will process all of them. However, if you are going to have lots of Mappings, you may be better using a Distribution List instead.
With the default behaviour, if you have set VPOP3 to handle two domains mycompany.com and anothercompany.com, then messages to firstname.lastname@example.org and email@example.com will both go to the user called fred. In many cases this is exactly what you want, but if that isn't what you want, then you can use Mappings.
For instance, instead of creating a User called fred, create two Users called fred.mycompany and fred.anothercompany. Then, create two Mappings:
•firstname.lastname@example.org → fred.mycompany
•email@example.com → fred.anothercompany
If fred is your salesman, then you may want him to also receive messages addressed to firstname.lastname@example.org. In this case, simply create a Mapping of sales → fred.
You could also create a Mapping of email@example.com → fred and VPOP3 will send messages addressed to firstname.lastname@example.org to fred's mailbox.
If your Local Domains are set to mycompany.com, then whenever a message addressed to a user @mycompany.com, VPOP3 will assume that the recipient should be defined in VPOP3. This will generate an error if the recipient doesn't actually exist. For instance, if VPOP3 handles most messages for mycompany.com, but messages to kate are put into a separate mailbox at your Internet provider, you can create a Mapping of kate → *REMOTE. This tells VPOP3 that the user kate exists, but is not handled by this VPOP3. In this case, locally sent messages to email@example.com will be sent out to the Internet, and VPOP3 will ignore the firstname.lastname@example.org recipient when downloading messages from a remote POP3 mailbox.
As well as checking the recipient address, Mappings can also check the sender's address when downloading from an external POP3 mailbox. This can be useful when trying to get around problems which happen when using a shared POP3 mailbox with BCCs.
So, you could create a FROM mapping of email@example.com → fred and any messages coming from firstname.lastname@example.org will be sent to fred. (Note that Download Rules also let you do something similar).
Mappings allow you to specify * and ? wildcards in the address portion of the Mapping. This can be useful in some cases.
Note that we do not recommend using a Mapping like fred@* . While VPOP3 will understand this, it will probably not do what you want. If someone sends a message to you, and CCs it to email@example.com, then this Mapping would make the local user fred receive a copy of the message, which is probably not what you intended.
There is also a 'special wildcard' you can use in Mappings: ~@domain.com. In this case, VPOP3 will check this Mapping if the recipient address doesn't match anything else. This lets you create rules for unrecognised addresses.
When a message arrives at VPOP3, first of all it looks through the Mappings to see if any of those match the recipient address. If they do, then VPOP3 only processes the Mappings. If no Mappings match the address, then VPOP3 will check for matching users/lists using an 'implied Mapping' (unless that option is turned off in the Mail Collector or Local Mail settings).
Finally, if no users or lists (or other special addresses) match the recipient address, then VPOP3 will check any ~@... Mappings to see if those match.