我想创建一个页面,允许人们在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接口.