Exim Email Control Specification

From Computer Tyme Support Wiki

Revision as of 23:41, 7 January 2006 by Marc (Talk | contribs)
Jump to: navigation, search

This is a specification for an email control program I'd like to have written for Exim. I want to make this project public domain so that others can share in it. I want to keep it simple and flexable. Looking for some volunteers to work on it. I can trade significant web hosting for people who will make this happen.

Contents

Overview

The idea behind this project is to create a PHP front end to text files on the back end that control Exim allowing users to have a high degree of personalization over feature that primarilly control spam. This would include personal white lists, personal black lists, forwarding, etc. The backend might also be a database but I'm leaning towards text files for simplicity and if done right should be very scalable. Once the structure is in place it should be easy to add a lot of customizations to give users every toy they ever dreamed of.

Authentication

The idea is yo use IMAP for authentication. All users and managers will use and email address and password to authenticate. It will attempt to log in to the email account and if successful, the user is considered logged in. Once loged in the user will be able to set all the features of their own account. If the user is a manager they well see additional choices to manage the things they are allowed to manage.

Control Files

Here is what I'm proposing for a control file structure. All of these files are test files. The directory structure is designed to be fast not having a lot of files in any one directory.

/etc/mailcontrol
/etc/mailcontrol/config
/etc/mailcontrol/managers
/etc/mailcontrol/domains
/etc/mailcontrol/domains/example.com
/etc/mailcontrol/domains/example.com/passwd
/etc/mailcontrol/domains/example.com/shadow
/etc/mailcontrol/domains/example.com/alias
/etc/mailcontrol/domains/example.com/config
/etc/mailcontrol/domains/example.com/managers
/etc/mailcontrol/domains/example.com/blocked-from
/etc/mailcontrol/domains/example.com/blocked-hosts
/etc/mailcontrol/domains/example.com/white-from
/etc/mailcontrol/domains/example.com/white-hosts
/etc/mailcontrol/domains/example.com/users
/etc/mailcontrol/domains/example.com/users/joe
/etc/mailcontrol/domains/example.com/users/joe/config
/etc/mailcontrol/domains/example.com/users/joe/vacation
/etc/mailcontrol/domains/example.com/users/joe/blocked-from
/etc/mailcontrol/domains/example.com/users/joe/blocked-hosts
/etc/mailcontrol/domains/example.com/users/joe/white-from
/etc/mailcontrol/domains/example.com/users/joe/white-hosts

The base director contains the master control files for the entire system. Booleans and settings in the config files. The managers file contains a list of email addresses of system managers.

Under each domain is the master files that control that entire domain. This includes the passwd, shadow, and alias files that mimick the unix passwd, shadow, and alias files. I've used a few examples of master white list and block lists but any number of files can be added for greater customization.

Each domain has a users folder which contains the user's accounts and personal settings. This allows the user to customize their own experience just the way they want. A few examples are given here but there's no limit to what you can add.

Administration

There are several levels of priveledges in this system. When the user is authenticated the system knows who they are and gives them the menus they should have access to. Three levels that need to be set up are Administrators, Domain Owners, and users.

Master Admins

Master admins control the system and can set anything else. They need to be able to create new domains, grant priveledges to other users, and config the system.

Domain Owners

Domain owners need dominion over their domain(s). Once they log in they can create and delete users, create aliases, manage block lists and white lists and any other settings that affect their domain. They would also have full control of all the users setting under their domains.

Email Users

Email Users would have control of their account. They can change their personal settings, vacation messages, forwarding, password, etc.

Personal tools