Hi !!
My only concern is that this file won't scale well with the number of users. The two simple solutions are a dropdown box with the domain you want or a default domain to append. Virtual user lookups are expensive and what if you have 2 bob's?
i think the user's email should be externally fixed to avoid users getting other's users identity, maybe just adding a config option with a PEAR:DB query to use when the username is not an email address (so it could be attached to any sort on existing db with that information). Leting the user choose it's email address is not safe (as it's not safe to user the same username/password to do smtp auth for all users)