デフォルトでは、postfix と dovecot はシステムからユーザーを取得します。これは/etc/passwd
UNIX/Linux ボックスにあります。
これを PHP スクリプトから管理することは可能ですが、あまりきれいではありません。
posix_getpwnam
ユーザー名が存在するかどうかを確認し、このユーザーに関する情報を取得するために使用できます。
ユーザーの追加はuseradd(8)
、Linux で行うのが最適です。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));
ただし、これはあまりお勧めしません。
私がお勧めするのは、ユーザーを PostgreSQL、MySQL、SQLite などの SQL データベースに保存することです。これはセットアップが非常に簡単で、PHP 側で行う必要があるのは、データベースの行を追加/削除/更新することだけです。これはあまり複雑ではなく、かなり柔軟であるため、おそらく最良のソリューションです。postfix
ページには、件名に関するいくつか
の「HOWTO」があり、dovecot も同様です。
最後のオプションとして、LDAP があります。LDAP はより複雑ですが、間違いなく「より優れた」柔軟性があります。PHP にはLDAPインターフェースがあります。