To rewrite recipients, you need to create some "mappings".
You will rewrite any recipient to an existing or a non-existing server account.
So read "mapping allows to rewrite a 'fromAny(Existing/NotExisting) user and/or domain' to a 'toAny(Existing/NotExisting)Account'".
'An existing account' means an account defined in the Apache James Server.
You can also use regular expressions and wildcards (*) for the 'fromAny'.
The available methods exposed in the management interface are the following:
/**
* Add regex mapping
*
* @param user
* the username. Null if no username should be used
* @param domain
* the domain. Null if no domain should be used
* @param regex
* the regex.
*/
void addRegexMapping(String user, String domain, String regex) throws Exception;
/**
* Remove regex mapping
*
* @param user
* the username. Null if no username should be used
* @param domain
* the domain. Null if no domain should be used
* @param regex
* the regex.
*/
void removeRegexMapping(String user, String domain, String regex) throws Exception;
/***
* Add address mapping
*
* @param user
* the username. Null if no username should be used
* @param domain
* the domain. Null if no domain should be used
* @param address
* the address.
*/
void addAddressMapping(String user, String domain, String address) throws Exception;
/**
* Remove address mapping
*
* @param user
* the username. Null if no username should be used
* @param domain
* the domain. Null if no domain should be used
* @param address
*/
void removeAddressMapping(String user, String domain, String address) throws Exception;
/**
* Add error mapping
*
* @param user
* the username. Null if no username should be used
* @param domain
* the domain. Null if no domain should be used
* @param error
*/
void addErrorMapping(String user, String domain, String error) throws Exception;
/**
* Remove error mapping
*
* @param user
* the username. Null if no username should be used
* @param domain
* the domain. Null if no domain should be used
* @param error
* @return true if successfully
*/
void removeErrorMapping(String user, String domain, String error) throws Exception;
/**
* Add domain mapping
*
* @param domain
* the domain. Null if no domain should be used
* @param targetDomain
* the target domain for the mapping
* @return true if successfully
*/
void addDomainMapping(String domain, String targetDomain) throws Exception;
/**
* Remove domain mapping
*
* @param domain
* the domain. Null if no domain should be used
* @param targetDomain
* the target domain for the mapping
*
* @return true if successfully
*/
void removeDomainMapping(String domain, String targetDomain) throws Exception;
/**
* Return the explicit mapping stored for the given user and domain. Return
* null if no mapping was found
*
* @param user
* the username
* @param domain
* the domain
* @return the collection which holds the mappings.
*/
Collection<String> getUserDomainMappings(String user, String domain) throws Exception;
/**
* Try to identify the right method based on the prefix of the mapping and
* add it.
*
* @param user
* the username. Null if no username should be used
* @param domain
* the domain. Null if no domain should be used
* @param mapping
* the mapping.
*/
void addMapping(String user, String domain, String mapping) throws Exception;
/**
* Try to identify the right method based on the prefix of the mapping and
* remove it.
*
* @param user
* the username. Null if no username should be used
* @param domain
* the domain. Null if no domain should be used
* @param mapping
* the mapping.
*/
void removeMapping(String user, String domain, String mapping) throws Exception;
/**
* Return a Map which holds all mappings. The key is the user@domain and the
* value is a Collection which holds all mappings
*
* @return Map which holds all mappings
*/
Map<String, Collection<String>> getAllMappings() throws Exception;