Возникла необходимость управлять из Нодени почтовым сервером Postfix, существующего функционала не хватает.
Структура таблицы 'mailbox' базы данных MySQL, с которой работает Postfix:
username: имя пользователя в формате
username@domain.compassword: MD5-отпечаток пароля пользователя
name: имя пользователя (ID)
maildir: папка пользователя в формате domain.com/username/
quota: квота ящика в байтах
domain: домен, в котором находится ящик пользователя
created: дата создания записи, формат 2009-11-17 16:26:36
modified: дата последнего изменения, формат тот же
active: включен?
Так как Postfix может работать с несколькими доменами, есть таблица domain со списком обслуживаемых доменов.
Админка:
имя пользователя вводить без домена, т.е. все что до @. Далее добавить раскрывающийся список со всеми доступными доменами (таблица domain, колонка domain + колонка active=1). В "Почтовых ящиках" на странице редактирования клиента убираем поле "каталог" - этот адрес должен создаваться из полей 'username'+'domain' по заданной маске. Поле "Вкл/выкл" хотелось бы видеть раскрывающимся списком доступных значений (для удобства, можно обсудить). Добавить поле "Квота" с вбитым по умолчанию значением (например, 100 Мб). В поле "пароль" текущий пароль не должен отображаться (ибо MD5), можно только вбить новый для изменения текущего.
Страница пользователя:
Заметка: для юзеров установлен веб-клиент с протоколом IMAP (roundcube), в котором он может создавать свои папки, почтовые правила, изменять личные данные. Предоставлять пользователям POP3 не собираюсь, только веб-клиент.
Если у юзера еще нету почты ему выдается страница с предложением зарегистрировать почтовый ящик. Пользователь читает правила, вводит логин, выбирает домен из списка доступных, вводит пароль и завершает регистрацию.
На этой же странице, когда отображается список почтовых ящиков пользователя, убрать поле "пароль" и кнопку "сохранить" - все это вынести в "Сменить пароль". В списке ящиков добавить поле "квота", соответственно, только для информации.
___________
Ввиду особенности работы почтовой системы, в любом случае после создания нового ящика надо сразу автоматически отослать приветственное письмо (чтобы создался maildir). Необходимо это тоже реализовать. В нагрузку можно добавить оповещение админу о создании нового ящика, либо запись в лог Нодени.
Я думаю, можно вынести в конфиг некоторые настройки, например, id доменов, которые доступны для self-регистрации пользователей, количество ящиков на душу населения, формат maildir и т.д.
Вроде все.