I'm relatively new to Debian and still learning a lot of things.

This said, I would like to make what is probably a really novice question: how do I manually add e-mail accounts and how can I give them a storage limit?

I ask this because I'm trying to design a management panel ala CPanel or DirectAdmin but in a server where every shell access or system command is disabled. So far, I've found that (correct me if I'm wrong, please):

  • A domain is a user group
  • Every user added under a given group belongs to this domain
  • Every user account is an FTP account per se (it's, as far as I understand, user-based)

So, as far as I need to deploy a basic website with an FTP access to upload content, I have to create a domain with a user and voilà! I just have to create a folder inside the domain user's home, link it in a VirtualHost definition, enable it with with a2ensite and that's about it... (at least, at a very basic level).

But how do I add an e-mail account? My experience with e-mail servers is virtually zero. I still have to learn how to effectively deploy all the needed packages (so far, exim4 and dovecot looks like a good choice) but I would like to have this well understood.

So here's my questions about e-mail accounts:

  • Is an e-mail account the same as an FTP account (as in being a regular user account)?
  • If it is, does it mean julio@dummy1.com is, in fact, user julio belonging to the dummy1 group?
  • How do I manually setup the storage quota for a given e-mail account?

I know... these are really basic concepts, and I still have to read LOTS of manuals out there but, at least, I would like to get it right about this.

Can you give me a hint?

closed as off-topic by Jenny D, colealtdelete, kce, Ward, MadHatter Nov 26 '13 at 10:08

This question appears to be off-topic. The users who voted to close gave these specific reasons:

  • "Questions must demonstrate a minimal understanding of the problem being solved. Try including attempted solutions, why they didn't work, and the expected results. See How can I ask better questions on Server Fault? for further guidance." – Ward, MadHatter
  • "Questions must be relevant to professional system administration. Server Fault is dedicated to professional system and network administrators. End user and enthusiast questions are off-topic (contact your system administrator or hire a professional to help you out). Please see the Help Center for more information." – Jenny D, colealtdelete, kce
If this question can be reworded to fit the rules in the help center, please edit the question.


In the olden days, a Unix box usually equaled a domain, or perhaps a few machines belonged to a domain, and users had a shell account and used that to read their mail. Then, machine == domain + FTP + user (*)

Fast forward to today, and most servers nowadays serve multiple domains complete with website and mailboxes, but with usually only a few shell accounts for the administrator(s). Things get a bit more complicated... Almost any service (mail, FTP, database) can be virtualized, that is, there is no connection with a real shell account anymore. For example, vsftpd allows you to store FTP users in a database; the same goes for vpopmail, which is a virtual mail manager. These are just two examples, there are other tools there as well (exim/dovecot seems popular these days)

To answer your first two questions: you can go for the old way and have real user shells; in that case an FTP account == mailaccount. But you can only serve one mail domain from that box, because there is no way to distinguish joe@dummy1.com from joe@dumm2.org. On the other hand, if you use tools like vsftpd, vpopmail etc. you loose the link between the two (though perhaps you can force them to use the same database so at least you don't have to enter an account twice). But in my experience 99% of the users don't need FTP anyway.

For virtual domain hosting I normally create one FTP account per domain for the webmaster, and one mallbox per user of the domain. Setting quota's is usually dependent on the mail solution you choose; with real user shell accounts you of course limit their disk quota, with virtual users you have to check the tool you are going to use.

(*) yes, that is somewhat oversimplified... but you get the idea

  • Thank you very much for the answer!. I like your way of doing things. In fact, and basing on your answer, I googled a bit deeper and found quite a good tutorial on how to setup virtual accounts on Postfix + Dovecot with Debian. I owe you a cold beer :) – Julio María Meca Hansen Nov 25 '13 at 12:12

Not the answer you're looking for? Browse other questions tagged or ask your own question.