The
Mailsorting contrib might do what you want.
Otherwise, you could customize
/etc/e-smith/templates-user/.qmail/70Forward to create the forwardings you want.
You could (if ambitious) create a "new feature request" in the bug tracker for multiple forward support, then work out the changes required to support multiple forwards:
- changes to the web panels
- changes to the functions that authenticate email forward values
- changes to 70Forward to parse the 'ForwardAddress' value in the database to create multiple forward lines in the .qmail file.
The following trick generates a correct ".qmail" file for multiple forwards, but may have problems of some sort somewhere (for example, you may no longer be able to save changes to the user account in server-manager if the customized ForwardAddress fails a data verification function):
1. Create the user in server-manager with forwarding set as desired (enabled/disabled; keep local/don't keep local). Include one forwarding address.
2. Set multiple forwards in a shell using these commands (this will overwrite the forwarding address entered in server-manager):
db accounts setprop username ForwardAddress 'user1@domain1.com
&user2@domain2.com
&user3@domain3.com'
signal-event user-modify username
* replace "username" with the user name you want to customize
* DON't include "&" before the first email address (this is inserted by the default template)
* DO include "&" before all extra email addresses
* Surround all email addresses in single quotes to cause the newlines to be saved to the db variable.
This creates a db entry for 'ForwardAddress' that includes newlines (due to the single quotes in the command), and which expands correctly.
Finally, you could combine some of my suggestions:
1) Create a custom version of 70Forward named "71ExtraForwards"
2) edit the custom version to use a new db value (ExtraForwards instead of ForwardAddress)
3) set the new db value instead of ForwardAddress using the command line as described above, or customize 71ExtraForwards to parse the new db value separated by commas or semi-colons.