# # /usr/local/etc/dovecot/passdb # Dovecot authentication database in passwd-file format. # # References: # * Dovecot - PasswordDatabase # https://wiki.dovecot.org/PasswordDatabase # * Dovecot - AuthDatabase / PasswdFile # https://wiki.dovecot.org/AuthDatabase/PasswdFile # # # Aaron LI # # Fields # ------ # user:password:(uid):(gid):(gecos):(home):(shell):extra_fields # The ()-enclosed fields are ignored by Dovecot passdb lookup. # ---------------------------------------------------------------------- {% set mydomain = mail.domains[0] %} {% for domain in mail.domains %} # [domain: {{ domain }}] {% for user in mail.userdb %} {% set username = user.name %} {% set email = username + "@" + domain %} {% set pass = user.pass %} # (user: {{ username }}) {{ email }}:{{ pass | dovecot_makepass }}::::::user={{ email }} {% for dev in user.devices|default([]) %} {% set devname = dev.name %} {% set pass = dev.pass %} {{ email }}@{{ devname }}:{{ pass | dovecot_makepass }}::::::user={{ email }} {% endfor %}{# devices #} {% if username != "root" and user.aliases is defined %} # aliases {% for alias in user.aliases|default([]) %} {% set email = alias + "@" + domain %} {{ email }}:{{ pass | dovecot_makepass }}::::::user={{ email }} {% for dev in user.devices|default([]) %} {% set devname = dev.name %} {% set pass = dev.pass %} {{ email }}@{{ devname }}:{{ pass | dovecot_makepass }}::::::user={{ email }} {% endfor %}{# devices #} {% endfor %}{# alias #} {% endif %}{# aliases #} {% endfor %}{# user #} {% endfor %}{# domain #} # EOF