The first step is to change your exim configuration. (For FREESCO 027 this file is /mnt/router/packages/exim/configure, for 03x this is /usr/local/exim/configure). For obvious reasons, make a backup of your config file first!
Locate the line with local_domains and make it look like this:

your line may look different because you've already added other local domains or you've used a different local domain name. The important part is the last section where we tell exim to look into a database file. In this example I've located this file (on my FREESCO 027) in /mnt/router/packages/exim/domains.dbm. I suggest you use /pkg/etc/domains.dbm for FREESCO 03x.

Now scroll down to the DIRECTORS CONFIGURATION in your exim configuration and add this section as the first handler:

Again these path names are for FREESCO 027, so make sure to change them for FREESCO 03x!
The most important part in this code is the line that says file =, notice the ${domain} code, this will get replaced with the virtual domain name later. The domains line must point to the domains database file that is created in the next step.
Save your changed configuration, but don't restart exim just yet!

First you need to change your exim configuration. (For FREESCO 027 this file is /mnt/router/packages/exim/etc/exim.conf, for 03x this is /etc/exim.conf). For obvious reasons, make a backup of your config file first!
Locate the line with domainlist local_domains and change it to look like this:

your line may look different because you've already added other local domains or you've used a different local domain name. The important part is the last section where we tell exim to look into a database file.

Now scroll down to the ROUTERS CONFIGURATION in your exim configuration and add this section as the first handler:

These path names are for FREESCO 03x. You need to change them for FREESCO 0.2.7.
The most important part in this code is the line that says data =, notice the $domain code, this will get replaced with the virtual domain name later. The domains line must point to the domains database file that is created in the next step.
Save your changed configuration, but don't restart exim just yet!

The next step is to create the virtual domain to local username mapping file(s). As you can see in the above code these files must be created in a directory /mnt/router/packages/exim/virtmail/ but of course you're free to change that to another location as long as you do it right!Example : For FREESCO 03x I use the following : /etc/mail/virtmail

As you can see the webmaster account for the virtual domain is correctly verified and delivered to local user webmaster. This is exactly what we wanted. Now let's see what happens when a non-existing mail account is tried:

Now create a similar file for the next virtual domain, dingetje.hopto.org, here I ommit the user ikke from the list:

webmaster: webmaster@localhost
postmaster: postmaster@localhost

This means mails for webmaster for both dingetje.homeip.net and my other domain dingetje.hopto.org are delivered to the same local user webmaster, which is OK, because I can still tell in my mail client for which webmaster the mail originally was addressed to. However, there is no user ikke, so let's see what happens when I try this:

A .forward file can be used to make sure a mail message is delivered further from a local user account to any other valid mail address on the planet.
To make this work, verify the next code is in place in the exim configuration:

Next generate a .forward file (don't forget the dot, very important) in the $HOME directory of the local user (check your /etc/passwd file if you don't know the login directory for a certain local user), and make it look like this:

\local_user, some.one@no.where, some.dude@does.not.exist

So basically supply all mail addresses that should receive the message. The first argument with the backslash assures the message is also delivered to the local user local_user 3).

very important: make sure the .forward file is owner and readable only by this local_user, so: