我在中大型企业环境中运行过 Dovecot+Postfix 邮件服务器,其中电子邮件地址大多通过 LDAP 帐户生成,或通过某个人力资源系统或其他系统传递。我还在我的个人服务器上运行该组合(Dovecot+Postfix)和 MariaDB 后端,该服务器是许多项目、家庭成员的小型企业等的所在地。
我是不是寻求有关如何安装 Dovecot 和 Postfix 的帮助。我想知道其他人在小型安装(请仅使用命令行)中使用什么工具来管理我的 Postfix+Dovecot 安装中的域、邮箱、别名等。
我以前有一个基于 Web 的管理面板,但我厌倦了试图将脆弱的安全措施堆放在如此糟糕的东西上。我也不想手动查询数据库来进行更改。
我也不关心迁移开销...需要转移到替换服务器上的域、邮箱和别名的数量都在我可以贿赂我十几岁的孩子手动输入的范围内。;)
答案1
我有一个类似的小规模设置,MySQL 为 postfix 和 dovecot 提供 virtual_domains 和 virtual_aliases。我编写了自己的 Web 界面来管理它们(主要是为了可以将其交给其他人来维护)。
鉴于您对 Web 界面或直接 SQL 不感兴趣,我能想到的唯一其他替代方案就是 Shell 脚本。
本质上,您必须将 SQL 写入 (bash) 脚本才能执行某些工作。然后,您可以调用适当的脚本来添加、更新或删除别名/域/用户。
类似这样的事情:
#!/bin/bash
## updatepassword.sh <email@address> <password>
## Update the password for an email account
mysql -u root -p forge -e "UPDATE users SET password = '$2' WHERE email= '$1'";
## Tell me if it's worked or not!
if [ $? -eq 0 ]
then
echo "$1 updated"
else
echo "Couldn't update password for $1"
fi
updatepassword.sh [email protected] newpass
请记住,这个示例非常简单,您需要使用您使用的任何机制来加密密码。如果您想添加数据验证来防止不可避免的拼写错误,以及添加健全性检查来删除别名/用户/域,您可以轻松地对其进行扩展。
我承认,我对其他人的想法很感兴趣。
答案2
我创建了一组简单的 bash 脚本来管理多个域、帐户、用户和别名,但它还不能在 GitHub 上发布。过去 3-4 年来,我一直在成功使用它。我所有的 dovecot/postfix 配置都是基于文件的,没有数据库。看来我不是唯一一个需要简单而有效的命令行解决方案的人?
答案3
在类似的设置中,我尝试让事情尽可能简单。我使用 Mail Admin (0.4.1) Web 界面来管理帐户本身。至于编辑任何配置文件,我使用老旧的 MC。我也讨厌对电子邮件转发、离开消息等进行数据库更改...所以我也从 Web 界面 (RCube Webmail) 管理这些。
因此基本上,所有文件管理都通过 MC 进行,而帐户管理则通过 Web 界面进行。希望对您有所帮助。