[Dovecot] Dovecot username mapping
Ok, here's my situation. I currently run IMail 7.x with about 80 domains and nearly 4000 users.
I want to switch this to a Linux server.
I'm using Virtualmin to manage the users/postfix.
I have dovecot working just peachy with the setup, except for one problem. We are an ISP. The easiest thing for us (and our users) is to have them use their full email address as their username.
What I need is some way to have Dovecot take a username and map it to the real unix user. Our unix users are created as "username-domain.com"
When our users login to our current email system, they enter their username as "username@domain.com". I for the life of me cannot figure out how to make Dovecot take "username@domain.com" and know that the unix username is really "username-domain.com"
Ideas?
-Adam "Fuzzy" Kennedy
Adam "Fuzzy" Kennedy wrote:
When our users login to our current email system, they enter their username as "username@domain.com". I for the life of me cannot figure out how to make Dovecot take "username@domain.com" and know that the unix username is really "username-domain.com"
You really should be using a virtual domain configuration, unless you have some other reason to give every user a unix account (like they are also going to need shell access). I don't know Postfix that well, but I do know that there are multiple ways to do it (including MySQL support). A virtual domain is going to be far easier to manage than creating 4k different accounts.
As for how to stitch username@domain.com => username-domain.com you should be able to use
default_mail_env = maildir:~%u-%d/Maildir
or whatever that points to their home directory.
HTH
John
-- John Peacock Director of Information Research and Technology Rowman & Littlefield Publishing Group 4501 Forbes Boulevard Suite H Lanham, MD 20706 301-459-3366 x.5010 fax 301-429-5748
On Feb 23, 2006, at 7:55 PM, Adam "Fuzzy" Kennedy wrote:
When our users login to our current email system, they enter their
username as "username@domain.com". I for the life of me cannot
figure out how to make Dovecot take "username@domain.com" and know
that the unix username is really "username-domain.com"
Maybe easiest way would be:
auth_username_translation = @-
Adam \"Fuzzy\" Kennedy wrote:
them use their full email address as their username. What I need is some way to have Dovecot take a username and map it to the real unix user. Our unix users are created as "username-domain.com"
That's a bad idea. Consider what happens if you have user-bla@example.com and user@bla-example.com.
Why do you use system users at all? The only good reason for this would be the filesystem quota support. If you can live without that for a while (dovecot will surely support quotas at some point in the future), you should really use virtual users. Otherwise, you'll have to insert an abstraction layer, so that you have mailboxes like "m<customer-id>-<user-id>" and email-addresses pointing to these mailboxes. From a technical point of view, this solution is better, anyway. Don't know what "Virtualmin" is and if it supports such a thing, though.
On Thu, Feb 23, 2006 at 12:55:47PM -0500, Adam Fuzzy Kennedy may have written:
I have dovecot working just peachy with the setup, except for one problem. We are an ISP. The easiest thing for us (and our users) is to have them use their full email address as their username.
What I need is some way to have Dovecot take a username and map it to the real unix user. Our unix users are created as "username-domain.com"
You could also use LDAP as the backend instead of the UNIX passwd database. You can create shell users out of them if you want to using libnss-ldap and libpam-ldap.
I use this kind of setup with dovecot and qmail-ldap. You can give a custom filter to dovecot to search for as well, so I can disable users in the MTA and IMAP/POP3 just by setting:
accountStatus: disabled
in the DN for that user.
HTH,
Brian T Glenn delink.net Internet Services
participants (5)
-
Adam "Fuzzy" Kennedy
-
Brian T Glenn
-
Jakob Hirsch
-
John Peacock
-
Timo Sirainen