This tutorial is available in other languages. Help translate more
简体中文 /
Attention
Check out the lightweight on-premises email archiving software developed by iRedMail team: Spider Email Archiver.
iRedMail configures Postfix to use Dovecot as SASL authenticate server, so all
password schemes supported by Dovecot can be used in Postfix. Please refer to
Dovecot wiki page
Password Schemes
for more details.
Below password schemes are supported in iRedAdmin-Pro (which means you can add new mail user with either one):
{SSHA512}FxgXDhBVYmTqoboW+ibyyzPv/wGG7y4VJtuHWrx+wfqrs/lIH2Qxn2eA0jygXtBhMvRi7GNFmL++6aAZ0kXpcy1fxag=
{CRYPT}$2a$05$TKnXV39M3uJ4o.AbY1HbjeAval9bunHbxd0.6Qn782yKoBjTEBXTe
{SSHA}OuCrqL2yWwQIu8a9uvyOQ5V/ZKfL7LJD
MD5 (salted). For example:
{CRYPT}$1$GfHYI7OE$vlXqMZSyJOSPXAmbXHq250
$1$GfHYI7OE$vlXqMZSyJOSPXAmbXHq250
Important note: SOGo groupware doesn't support MD5 without a prefix, so
if you're going to migrate MD5 password hash from old mail server, please
prepend {CRYPT}
prefix in password hash.
PLAIN-MD5 (without a salt). e.g. 0d2bf3c712402f428d48fed691850bfc
123456
WARNING: MD5, PLAIN-MD5 and plain password are weak, please don't use them.
NOTES:
BCRYPT
is only available on BSD systems, because libc
shipped in Linux
doesn't support bcrypt.For MySQL and PostgreSQL backends:
SSHA512
salted MD5
For LDAP backends:
SSHA512
SSHA
. OpenLDAP package
shipped in these distributions don't support SHA-2 password
verification by default.SSHA
.Note
OpenLDAP's builtin password verification doesn't support SHA-2 password
hash formats directly, so if you have third-party applications which need
OpenLDAP's builtin password verification, you'd better use SSHA
hash.
If you don't have such concern, it's ok to store SSHA512/BCRYPT
hash as mail user password, then set ldap_bind = no
in
/etc/dovecot/dovecot.conf
. SMTP/IMAP/POP3 services work with it, but
Apache basic auth doesn't.
All mail users are stored in SQL table vmail.mailbox
, user password is stored
in SQL column mailbox.password
. For example (Note: you should replace xx@xx
with your real email address):
sql> USE vmail;
sql> UPDATE mailbox SET password='$1$GfHYI7OE$vlXqMZSyJOSPXAmbXHq250' WHERE username='xx@xx';
sql> UPDATE mailbox SET password='{SSHA}OuCrqL2yWwQIu8a9uvyOQ5V/ZKfL7LJD' WHERE username='xx@xx';
sql> UPDATE mailbox SET password='{SSHA512}FxgXDhBVYmTqoboW+ibyyzPv/wGG7y4VJtuHWrx+wfqrs/lIH2Qxn2eA0jygXtBhMvRi7GNFmL++6aAZ0kXpcy1fxag=' WHERE username='xx@xx';
{PLAIN-MD5}
in your password hash:sql> USE vmail;
sql> UPDATE mailbox SET password='{PLAIN-MD5}0d2bf3c712402f428d48fed691850bfc' WHERE username='xx@xx';
{PLAIN}
:sql> USE vmail;
sql> UPDATE mailbox SET password='{PLAIN}123456' WHERE username='xx@xx';
User password is stored in attribute userPassword
of user object.
userPassword: 123456
userPassword: {SSHA}OuCrqL2yWwQIu8a9uvyOQ5V/ZKfL7LJD
userPassword: {SSHA512}FxgXDhBVYmTqoboW+ibyyzPv/wGG7y4VJtuHWrx+wfqrs...
{CRYPT}
(case insensitive) in your password hash. For example:
userPassword: {CRYPT}$1$GfHYI7OE$vlXqMZSyJOSPXAmbXHq250
IMPORTANT NOTE: If you want to input password hash with phpLDAPadmin,
please choose clear
in the password hash list, then input password hash.