从dovecot/postfix上的php脚本创建新的电子邮件帐户
我想创建一个页面,允许人们在dovecot/postfix服务器上创建新的电子邮件帐户(通过imap) 我见过php函数从dovecot/postfix上的php脚本创建新的电子邮件帐户,php,email,imap,postfix-mta,dovecot,Php,Email,Imap,Postfix Mta,Dovecot,我想创建一个页面,允许人们在dovecot/postfix服务器上创建新的电子邮件帐户(通过imap) 我见过php函数imap\u open和imap\u createmailbox,但这些函数不创建帐户,只创建一个新目录:/ (您需要现有帐户的登录名/密码才能使用imap\u open。) 所以我想知道是否有可能做到这一点:) 编辑 我添加这个是因为我之前的信息不够具体。 我需要一个头版,允许用户注册一个新邮箱,并检查他们想要的邮件别名是否免费。这就是为什么大多数基于网络的管理员对我不好。我
imap\u open
和imap\u createmailbox
,但这些函数不创建帐户,只创建一个新目录:/
(您需要现有帐户的登录名/密码才能使用imap\u open
。)
所以我想知道是否有可能做到这一点:)
编辑
我添加这个是因为我之前的信息不够具体。
我需要一个头版,允许用户注册一个新邮箱,并检查他们想要的邮件别名是否免费。这就是为什么大多数基于网络的管理员对我不好。我不希望最终用户看到管理面板。好的。答案取决于dovecot和postfix的用户帐户列表存储在服务器上的位置。即,dovecot和postfix从何处检索用户帐户。也就是说,dovecot和postfix不维护自己的用户帐户列表,它们只保留一些现有的列表。例如,几年前我配置了dovecot和postfix,以便它们从MySQL数据库获取用户帐户列表(以及相应的电子邮件地址、存储路径等)。在这种实现中,只需在MySQL数据库中插入几条记录,就足以添加新的电子邮件帐户 我不知道你的服务器上是如何配置dovecot和postfix的。可能他们只是在使用系统用户帐户(然后您需要使用
useradd
/adduser
)添加用户帐户),可能他们从LDAP检索用户帐户列表(然后您需要将用户插入LDAP),或者只是从普通配置文件(然后您需要编辑配置文件).默认情况下,postfix和dovecot从系统获取用户。这是UNIX/Linux设备上的/etc/passwd
从PHP脚本管理这一点是可能的,但不太漂亮
- 您可以使用检查用户名是否存在,并获取有关此用户的信息
- 在Linux上,添加用户最好使用
。您需要使用useradd(8)
来启动此shell实用程序。示例用法可能是:exec()
$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));
页面上有一些关于这个主题的“HOWTO”和
最后一个选择是LDAP。LDAP更复杂,但可以说是“更好”和更灵活。PHP有一个接口。系统服务通常使用系统帐户(如:
/etc/passwd
),尽管这可能取决于设置,但在任何情况下,您都需要使用一些shell命令或修改系统文件/数据库。没有PHP函数可以为您执行此操作。。。已经有很多基于web的解决方案,我建议使用其中一种,而不是自己制作。请看一看,我可以使用基于web的解决方案,但不幸的是,我需要用php开发:(当心,从web服务器进行帐户管理会带来一系列安全问题。@Max为什么这会不安全?显然,你可以使其不安全,但任何帐户管理系统都是如此。我们如何设置dovecot/postfix,以便他们从MySQL或MongoDBAbout等DBMS后缀检索用户:。关于dovecot:。此外,还有一节介绍如何将这三个词绑定在一起:在页面中搜索单词“PostgreSQL”。