在dovecot / postfix上从php脚本创建一个新的电子邮件帐户

我想创建一个页面,允许人们在dovecot / postfix服务器上创建新的电子邮件帐户(通过imap).

我见过php函数imap_open和imap_createmailbox,但这些函数不创建帐户,它只创建一个新目录:/
 (并且您需要现有帐户的登录名/密码才能使用imap_open …)

所以我想知道是否可以这样做:).

编辑

我添加这个是因为我之前的消息不够具体.
我需要一个首页,允许用户注册一个新邮箱,并检查他们想要的邮件别名是否是免费的.这就是为什么大多数基于网络的管理员对我不好的原因.我不希望最终用户看到管理面板.

解决方法:

默认情况下,postfix& dovecot从系统中获取用户.这是UNIX / Linux机器上的/ etc / passwd.

PHP脚本管理这个是可能的,但不是太漂亮.

>您可以使用posix_getpwnam检查用户名是否存在,并获取有关此用户的信息.
>最好在Linux上使用useradd(8)来添加用户.您将需要使用exec()来启动此shell实用程序.示例用法可能是:

$pw = crypt($_POST['password'], '$6$1234567890123456'); # This should be 16 characters of random salt
exec(sprintf('useradd --groups mailuser --no-user-group --shell nologin --password %s', escapeshellarg($pw));

不过,我不会真的推荐这个.

我建议的是将用户存储在SQL数据库中,例如PostgreSQL,MySQL或SQLite.这很容易设置,在PHP方面,您所要做的就是在数据库上添加/删除/更新行.这可能是最好的解决方案,因为它不是太复杂,但仍然相当灵活.
postfix页面上有一些关于这个主题的“HOWTO”,以及so does dovecot.

Aa是最终选项,有LDAP. LDAP更复杂,但可以说是“更好”和更好更灵活. PHP有一个LDAP接口.

上一篇:使用Postfix与Dovecot部署邮件系统


下一篇:ubuntu18.04配置邮件服务: postfix+dovecot+roundcube