With the flexibility of the User packages, skins, pre/post.sh scripts and the API, you can accomplish essentially any service combination you wish. Regarding email, there are a few methods of accomplishing an email-only system.
, using DA and it's normal login system, easiest:
Copy one of our skins
to your own, and remove any the bits you don't want.
cp -Rp enhanced emailonly
remove links to the filemanager, and any other non-email related areas in the new emailonly skin.
Create normal User packages, and set 0 to the values you don't want them touching (eg, ftp, databases, etc).
Select the emailonly skin you've created.
this step is optional, but in term of completeness and security, is recommended.
Using the all_pre.sh
, create the script to only allow access to email related CMD_ functions.
You can add these checks only for users who are using the emailonly skin (grab this check from /usr/local/directadmin/data/users/$username/user.conf, skin=emailonly)
Basically, you'll just add all email related commands to the "ok" list, and then deny everything else (return 0 for ok, return non-zero for not ok).
The purpose of the all_pre.sh is to ensure they don't manually try to do things (like access the filemanager) using their own custom forms sent from somewhere else, or an API.
The newer commands.allow and commands.deny would also accomplish the same thing, and would be more efficient than the all_pre.sh:
, using the DA API, requiring you to create your own internface using php.
With this 2nd option, you'd create your own login system, your own interface with php, and then simply have your scripts connect to DA's API to create what you want, how you want, etc.