This commit is contained in:
github-actions[bot] 2024-07-21 22:01:19 +00:00
parent f811be1c2c
commit fbc68b5962
53 changed files with 15755 additions and 4627 deletions

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -560,12 +560,52 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2" >
<label class="md-nav__link" for="__nav_4_2" id="__nav_4_2_label" tabindex="0">
<span class="md-ellipsis">
Account Management
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2">
<span class="md-nav__icon md-icon"></span>
Account Management
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../user-management/" class="md-nav__link">
<a href="../../account-management/overview/" class="md-nav__link">
<span class="md-ellipsis">
User Management
Overview
</span>
@ -588,6 +628,194 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_2" >
<label class="md-nav__link" for="__nav_4_2_2" id="__nav_4_2_2_label" tabindex="0">
<span class="md-ellipsis">
Provisioner
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_2">
<span class="md-nav__icon md-icon"></span>
Provisioner
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../account-management/provisioner/file/" class="md-nav__link">
<span class="md-ellipsis">
File Based
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../account-management/provisioner/ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Service
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_3" >
<label class="md-nav__link" for="__nav_4_2_3" id="__nav_4_2_3_label" tabindex="0">
<span class="md-ellipsis">
Supplementary
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_3">
<span class="md-nav__icon md-icon"></span>
Supplementary
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../account-management/supplementary/master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Master Accounts
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../account-management/supplementary/oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
@ -1149,48 +1377,6 @@
<li class="md-nav__item">
<a href="../auth-ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../auth-oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../mail-sieve/" class="md-nav__link">
@ -1267,10 +1453,10 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_8_9" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_8_7" >
<label class="md-nav__link" for="__nav_4_8_9" id="__nav_4_8_9_label" tabindex="0">
<label class="md-nav__link" for="__nav_4_8_7" id="__nav_4_8_7_label" tabindex="0">
<span class="md-ellipsis">
@ -1281,8 +1467,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8_9">
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8_7">
<span class="md-nav__icon md-icon"></span>
Email Forwarding
</label>
@ -1527,27 +1713,6 @@
<li class="md-nav__item">
<a href="../dovecot-master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Dovecot Master Accounts
</span>
</a>
</li>
</ul>
</nav>

View file

@ -560,12 +560,52 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2" >
<label class="md-nav__link" for="__nav_4_2" id="__nav_4_2_label" tabindex="0">
<span class="md-ellipsis">
Account Management
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2">
<span class="md-nav__icon md-icon"></span>
Account Management
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../user-management/" class="md-nav__link">
<a href="../../account-management/overview/" class="md-nav__link">
<span class="md-ellipsis">
User Management
Overview
</span>
@ -588,6 +628,194 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_2" >
<label class="md-nav__link" for="__nav_4_2_2" id="__nav_4_2_2_label" tabindex="0">
<span class="md-ellipsis">
Provisioner
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_2">
<span class="md-nav__icon md-icon"></span>
Provisioner
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../account-management/provisioner/file/" class="md-nav__link">
<span class="md-ellipsis">
File Based
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../account-management/provisioner/ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Service
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_3" >
<label class="md-nav__link" for="__nav_4_2_3" id="__nav_4_2_3_label" tabindex="0">
<span class="md-ellipsis">
Supplementary
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_3">
<span class="md-nav__icon md-icon"></span>
Supplementary
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../account-management/supplementary/master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Master Accounts
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../account-management/supplementary/oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
@ -1149,48 +1377,6 @@
<li class="md-nav__item">
<a href="../auth-ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../auth-oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../mail-sieve/" class="md-nav__link">
@ -1267,10 +1453,10 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_8_9" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_8_7" >
<label class="md-nav__link" for="__nav_4_8_9" id="__nav_4_8_9_label" tabindex="0">
<label class="md-nav__link" for="__nav_4_8_7" id="__nav_4_8_7_label" tabindex="0">
<span class="md-ellipsis">
@ -1281,8 +1467,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8_9">
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8_7">
<span class="md-nav__icon md-icon"></span>
Email Forwarding
</label>
@ -1554,27 +1740,6 @@
<li class="md-nav__item">
<a href="../dovecot-master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Dovecot Master Accounts
</span>
</a>
</li>
</ul>
</nav>

View file

@ -560,12 +560,52 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2" >
<label class="md-nav__link" for="__nav_4_2" id="__nav_4_2_label" tabindex="0">
<span class="md-ellipsis">
Account Management
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2">
<span class="md-nav__icon md-icon"></span>
Account Management
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../user-management/" class="md-nav__link">
<a href="../../account-management/overview/" class="md-nav__link">
<span class="md-ellipsis">
User Management
Overview
</span>
@ -588,6 +628,194 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_2" >
<label class="md-nav__link" for="__nav_4_2_2" id="__nav_4_2_2_label" tabindex="0">
<span class="md-ellipsis">
Provisioner
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_2">
<span class="md-nav__icon md-icon"></span>
Provisioner
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../account-management/provisioner/file/" class="md-nav__link">
<span class="md-ellipsis">
File Based
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../account-management/provisioner/ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Service
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_3" >
<label class="md-nav__link" for="__nav_4_2_3" id="__nav_4_2_3_label" tabindex="0">
<span class="md-ellipsis">
Supplementary
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_3">
<span class="md-nav__icon md-icon"></span>
Supplementary
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../account-management/supplementary/master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Master Accounts
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../account-management/supplementary/oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
@ -1149,48 +1377,6 @@
<li class="md-nav__item">
<a href="../auth-ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../auth-oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../mail-sieve/" class="md-nav__link">
@ -1267,10 +1453,10 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_8_9" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_8_7" >
<label class="md-nav__link" for="__nav_4_8_9" id="__nav_4_8_9_label" tabindex="0">
<label class="md-nav__link" for="__nav_4_8_7" id="__nav_4_8_7_label" tabindex="0">
<span class="md-ellipsis">
@ -1281,8 +1467,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8_9">
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8_7">
<span class="md-nav__icon md-icon"></span>
Email Forwarding
</label>
@ -1506,27 +1692,6 @@
<li class="md-nav__item">
<a href="../dovecot-master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Dovecot Master Accounts
</span>
</a>
</li>
</ul>
</nav>

View file

@ -560,12 +560,52 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2" >
<label class="md-nav__link" for="__nav_4_2" id="__nav_4_2_label" tabindex="0">
<span class="md-ellipsis">
Account Management
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2">
<span class="md-nav__icon md-icon"></span>
Account Management
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../user-management/" class="md-nav__link">
<a href="../../account-management/overview/" class="md-nav__link">
<span class="md-ellipsis">
User Management
Overview
</span>
@ -588,6 +628,194 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_2" >
<label class="md-nav__link" for="__nav_4_2_2" id="__nav_4_2_2_label" tabindex="0">
<span class="md-ellipsis">
Provisioner
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_2">
<span class="md-nav__icon md-icon"></span>
Provisioner
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../account-management/provisioner/file/" class="md-nav__link">
<span class="md-ellipsis">
File Based
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../account-management/provisioner/ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Service
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_3" >
<label class="md-nav__link" for="__nav_4_2_3" id="__nav_4_2_3_label" tabindex="0">
<span class="md-ellipsis">
Supplementary
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_3">
<span class="md-nav__icon md-icon"></span>
Supplementary
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../account-management/supplementary/master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Master Accounts
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../account-management/supplementary/oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
@ -1149,48 +1377,6 @@
<li class="md-nav__item">
<a href="../auth-ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../auth-oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../mail-sieve/" class="md-nav__link">
@ -1321,10 +1507,10 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_8_9" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_8_7" >
<label class="md-nav__link" for="__nav_4_8_9" id="__nav_4_8_9_label" tabindex="0">
<label class="md-nav__link" for="__nav_4_8_7" id="__nav_4_8_7_label" tabindex="0">
<span class="md-ellipsis">
@ -1335,8 +1521,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8_9">
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8_7">
<span class="md-nav__icon md-icon"></span>
Email Forwarding
</label>
@ -1497,27 +1683,6 @@
<li class="md-nav__item">
<a href="../dovecot-master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Dovecot Master Accounts
</span>
</a>
</li>
</ul>
</nav>

View file

@ -555,12 +555,52 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2" >
<label class="md-nav__link" for="__nav_4_2" id="__nav_4_2_label" tabindex="0">
<span class="md-ellipsis">
Account Management
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2">
<span class="md-nav__icon md-icon"></span>
Account Management
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../user-management/" class="md-nav__link">
<a href="../../../account-management/overview/" class="md-nav__link">
<span class="md-ellipsis">
User Management
Overview
</span>
@ -583,6 +623,194 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_2" >
<label class="md-nav__link" for="__nav_4_2_2" id="__nav_4_2_2_label" tabindex="0">
<span class="md-ellipsis">
Provisioner
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_2">
<span class="md-nav__icon md-icon"></span>
Provisioner
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../account-management/provisioner/file/" class="md-nav__link">
<span class="md-ellipsis">
File Based
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../account-management/provisioner/ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Service
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_3" >
<label class="md-nav__link" for="__nav_4_2_3" id="__nav_4_2_3_label" tabindex="0">
<span class="md-ellipsis">
Supplementary
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_3">
<span class="md-nav__icon md-icon"></span>
Supplementary
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../account-management/supplementary/master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Master Accounts
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../account-management/supplementary/oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
@ -1144,48 +1372,6 @@
<li class="md-nav__item">
<a href="../../auth-ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../auth-oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../mail-sieve/" class="md-nav__link">
@ -1262,10 +1448,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_8_9" checked>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_8_7" checked>
<label class="md-nav__link" for="__nav_4_8_9" id="__nav_4_8_9_label" tabindex="0">
<label class="md-nav__link" for="__nav_4_8_7" id="__nav_4_8_7_label" tabindex="0">
<span class="md-ellipsis">
@ -1276,8 +1462,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_9_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_4_8_9">
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_7_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_4_8_7">
<span class="md-nav__icon md-icon"></span>
Email Forwarding
</label>
@ -1446,27 +1632,6 @@
<li class="md-nav__item">
<a href="../../dovecot-master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Dovecot Master Accounts
</span>
</a>
</li>
</ul>
</nav>

View file

@ -555,12 +555,52 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2" >
<label class="md-nav__link" for="__nav_4_2" id="__nav_4_2_label" tabindex="0">
<span class="md-ellipsis">
Account Management
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2">
<span class="md-nav__icon md-icon"></span>
Account Management
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../user-management/" class="md-nav__link">
<a href="../../../account-management/overview/" class="md-nav__link">
<span class="md-ellipsis">
User Management
Overview
</span>
@ -583,6 +623,194 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_2" >
<label class="md-nav__link" for="__nav_4_2_2" id="__nav_4_2_2_label" tabindex="0">
<span class="md-ellipsis">
Provisioner
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_2">
<span class="md-nav__icon md-icon"></span>
Provisioner
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../account-management/provisioner/file/" class="md-nav__link">
<span class="md-ellipsis">
File Based
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../account-management/provisioner/ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Service
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_3" >
<label class="md-nav__link" for="__nav_4_2_3" id="__nav_4_2_3_label" tabindex="0">
<span class="md-ellipsis">
Supplementary
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_3">
<span class="md-nav__icon md-icon"></span>
Supplementary
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../account-management/supplementary/master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Master Accounts
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../account-management/supplementary/oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
@ -1144,48 +1372,6 @@
<li class="md-nav__item">
<a href="../../auth-ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../auth-oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../mail-sieve/" class="md-nav__link">
@ -1262,10 +1448,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_8_9" checked>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_8_7" checked>
<label class="md-nav__link" for="__nav_4_8_9" id="__nav_4_8_9_label" tabindex="0">
<label class="md-nav__link" for="__nav_4_8_7" id="__nav_4_8_7_label" tabindex="0">
<span class="md-ellipsis">
@ -1276,8 +1462,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_9_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_4_8_9">
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_7_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_4_8_7">
<span class="md-nav__icon md-icon"></span>
Email Forwarding
</label>
@ -1446,27 +1632,6 @@
<li class="md-nav__item">
<a href="../../dovecot-master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Dovecot Master Accounts
</span>
</a>
</li>
</ul>
</nav>

View file

@ -560,12 +560,52 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2" >
<label class="md-nav__link" for="__nav_4_2" id="__nav_4_2_label" tabindex="0">
<span class="md-ellipsis">
Account Management
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2">
<span class="md-nav__icon md-icon"></span>
Account Management
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../user-management/" class="md-nav__link">
<a href="../../../account-management/overview/" class="md-nav__link">
<span class="md-ellipsis">
User Management
Overview
</span>
@ -588,6 +628,194 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_2" >
<label class="md-nav__link" for="__nav_4_2_2" id="__nav_4_2_2_label" tabindex="0">
<span class="md-ellipsis">
Provisioner
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_2">
<span class="md-nav__icon md-icon"></span>
Provisioner
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../account-management/provisioner/file/" class="md-nav__link">
<span class="md-ellipsis">
File Based
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../account-management/provisioner/ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Service
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_3" >
<label class="md-nav__link" for="__nav_4_2_3" id="__nav_4_2_3_label" tabindex="0">
<span class="md-ellipsis">
Supplementary
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_3">
<span class="md-nav__icon md-icon"></span>
Supplementary
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../account-management/supplementary/master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Master Accounts
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../account-management/supplementary/oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
@ -1149,48 +1377,6 @@
<li class="md-nav__item">
<a href="../../auth-ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../auth-oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../mail-sieve/" class="md-nav__link">
@ -1267,10 +1453,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_8_9" checked>
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_8_7" checked>
<label class="md-nav__link" for="__nav_4_8_9" id="__nav_4_8_9_label" tabindex="0">
<label class="md-nav__link" for="__nav_4_8_7" id="__nav_4_8_7_label" tabindex="0">
<span class="md-ellipsis">
@ -1281,8 +1467,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_9_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_4_8_9">
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_7_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_4_8_7">
<span class="md-nav__icon md-icon"></span>
Email Forwarding
</label>
@ -1521,27 +1707,6 @@
<li class="md-nav__item">
<a href="../../dovecot-master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Dovecot Master Accounts
</span>
</a>
</li>
</ul>
</nav>

View file

@ -560,12 +560,52 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2" >
<label class="md-nav__link" for="__nav_4_2" id="__nav_4_2_label" tabindex="0">
<span class="md-ellipsis">
Account Management
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2">
<span class="md-nav__icon md-icon"></span>
Account Management
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../user-management/" class="md-nav__link">
<a href="../../account-management/overview/" class="md-nav__link">
<span class="md-ellipsis">
User Management
Overview
</span>
@ -588,6 +628,194 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_2" >
<label class="md-nav__link" for="__nav_4_2_2" id="__nav_4_2_2_label" tabindex="0">
<span class="md-ellipsis">
Provisioner
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_2">
<span class="md-nav__icon md-icon"></span>
Provisioner
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../account-management/provisioner/file/" class="md-nav__link">
<span class="md-ellipsis">
File Based
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../account-management/provisioner/ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Service
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_3" >
<label class="md-nav__link" for="__nav_4_2_3" id="__nav_4_2_3_label" tabindex="0">
<span class="md-ellipsis">
Supplementary
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_3">
<span class="md-nav__icon md-icon"></span>
Supplementary
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../account-management/supplementary/master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Master Accounts
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../account-management/supplementary/oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
@ -1149,48 +1377,6 @@
<li class="md-nav__item">
<a href="../auth-ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../auth-oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../mail-sieve/" class="md-nav__link">
@ -1345,10 +1531,10 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_8_9" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_8_7" >
<label class="md-nav__link" for="__nav_4_8_9" id="__nav_4_8_9_label" tabindex="0">
<label class="md-nav__link" for="__nav_4_8_7" id="__nav_4_8_7_label" tabindex="0">
<span class="md-ellipsis">
@ -1359,8 +1545,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8_9">
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8_7">
<span class="md-nav__icon md-icon"></span>
Email Forwarding
</label>
@ -1521,27 +1707,6 @@
<li class="md-nav__item">
<a href="../dovecot-master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Dovecot Master Accounts
</span>
</a>
</li>
</ul>
</nav>

View file

@ -15,7 +15,7 @@
<link rel="canonical" href="https://docker-mailserver.github.io/docker-mailserver/edge/config/advanced/mail-sieve/">
<link rel="prev" href="../auth-oauth2/">
<link rel="prev" href="../override-defaults/user-patches/">
<link rel="next" href="../mail-fetchmail/">
@ -560,12 +560,52 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2" >
<label class="md-nav__link" for="__nav_4_2" id="__nav_4_2_label" tabindex="0">
<span class="md-ellipsis">
Account Management
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2">
<span class="md-nav__icon md-icon"></span>
Account Management
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../user-management/" class="md-nav__link">
<a href="../../account-management/overview/" class="md-nav__link">
<span class="md-ellipsis">
User Management
Overview
</span>
@ -588,6 +628,194 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_2" >
<label class="md-nav__link" for="__nav_4_2_2" id="__nav_4_2_2_label" tabindex="0">
<span class="md-ellipsis">
Provisioner
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_2">
<span class="md-nav__icon md-icon"></span>
Provisioner
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../account-management/provisioner/file/" class="md-nav__link">
<span class="md-ellipsis">
File Based
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../account-management/provisioner/ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Service
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_3" >
<label class="md-nav__link" for="__nav_4_2_3" id="__nav_4_2_3_label" tabindex="0">
<span class="md-ellipsis">
Supplementary
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_3">
<span class="md-nav__icon md-icon"></span>
Supplementary
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../account-management/supplementary/master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Master Accounts
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../account-management/supplementary/oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
@ -1147,48 +1375,6 @@
<li class="md-nav__item">
<a href="../auth-ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../auth-oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
@ -1243,9 +1429,9 @@
</li>
<li class="md-nav__item">
<a href="#automatic-sorting-based-on-subaddresses" class="md-nav__link">
<a href="#subaddress-mailbox-routing" class="md-nav__link">
<span class="md-ellipsis">
Automatic Sorting Based on Subaddresses
Automatic Sorting Based on Sub-addresses
</span>
</a>
@ -1330,10 +1516,10 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_8_9" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_8_7" >
<label class="md-nav__link" for="__nav_4_8_9" id="__nav_4_8_9_label" tabindex="0">
<label class="md-nav__link" for="__nav_4_8_7" id="__nav_4_8_7_label" tabindex="0">
<span class="md-ellipsis">
@ -1344,8 +1530,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8_9">
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8_7">
<span class="md-nav__icon md-icon"></span>
Email Forwarding
</label>
@ -1506,27 +1692,6 @@
<li class="md-nav__item">
<a href="../dovecot-master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Dovecot Master Accounts
</span>
</a>
</li>
</ul>
</nav>
@ -2141,9 +2306,9 @@
</li>
<li class="md-nav__item">
<a href="#automatic-sorting-based-on-subaddresses" class="md-nav__link">
<a href="#subaddress-mailbox-routing" class="md-nav__link">
<span class="md-ellipsis">
Automatic Sorting Based on Subaddresses
Automatic Sorting Based on Sub-addresses
</span>
</a>
@ -2250,25 +2415,73 @@
<span class="err">pipe</span> <span class="s">&quot;external-program&quot;</span><span class="p">;</span>
</code></pre></div>
<p>For more examples or a detailed description of the Sieve language have a look at <a href="http://sieve.info/examplescripts">the official site</a>. Other resources are available on the internet where you can find several <a href="https://support.tigertech.net/sieve#sieve-example-rules-jmp">examples</a>.</p>
<h2 id="automatic-sorting-based-on-subaddresses"><a class="toclink" href="#automatic-sorting-based-on-subaddresses">Automatic Sorting Based on Subaddresses</a></h2>
<p>It is possible to sort subaddresses such as <code>user+mailing-lists@example.com</code> into a corresponding folder (here: <code>INBOX/Mailing-lists</code>) automatically.</p>
<div class="highlight"><pre><span></span><code><span class="kn">require</span> <span class="p">[</span><span class="s">&quot;envelope&quot;</span><span class="p">,</span> <span class="s">&quot;fileinto&quot;</span><span class="p">,</span> <span class="s">&quot;mailbox&quot;</span><span class="p">,</span> <span class="s">&quot;subaddress&quot;</span><span class="p">,</span> <span class="s">&quot;variables&quot;</span><span class="p">];</span>
<h2 id="subaddress-mailbox-routing"><a class="toclink" href="#subaddress-mailbox-routing">Automatic Sorting Based on Sub-addresses</a></h2>
<p>When mail is delivered to your account, it is possible to organize storing mail into folders by the <a href="../../account-management/overview/#sub-addressing">subaddress (tag)</a> used.</p>
<div class="admonition example">
<p class="admonition-title">Example: <code>user+&lt;tag&gt;@example.com</code> to <code>INBOX/&lt;Tag&gt;</code></p>
<p>This example sorts mail into inbox folders by their tag:</p>
<div class="highlight"><span class="filename">docker-data/dms/config/user@example.com.dovecot.sieve</span><pre><span></span><code><span class="kn">require</span> <span class="p">[</span><span class="s">&quot;envelope&quot;</span><span class="p">,</span> <span class="s">&quot;fileinto&quot;</span><span class="p">,</span> <span class="s">&quot;mailbox&quot;</span><span class="p">,</span> <span class="s">&quot;subaddress&quot;</span><span class="p">,</span> <span class="s">&quot;variables&quot;</span><span class="p">];</span>
<span class="c1"># Check if the mail recipient address has a tag (:detail)</span>
<span class="nb">if</span> <span class="nb">envelope</span> <span class="nt">:detail</span> <span class="nt">:matches</span> <span class="s">&quot;to&quot;</span> <span class="s">&quot;*&quot;</span> <span class="p">{</span>
<span class="c1"># Create a variable `tag`, with the the captured `to` value normalized (SoCIAL =&gt; Social)</span>
<span class="kd">set</span> <span class="nt">:lower</span> <span class="nt">:upperfirst</span> <span class="s">&quot;tag&quot;</span> <span class="s">&quot;${1}&quot;</span><span class="p">;</span>
<span class="nb">if</span> <span class="err">mailbox</span><span class="nb">exists</span> <span class="s">&quot;INBOX.${1}&quot;</span> <span class="p">{</span>
<span class="nb">fileinto</span> <span class="s">&quot;INBOX.${1}&quot;</span><span class="p">;</span>
<span class="c1"># Store the mail into a folder with the tag name, nested under your inbox folder:</span>
<span class="nb">if</span> <span class="err">mailbox</span><span class="nb">exists</span> <span class="s">&quot;INBOX.${tag}&quot;</span> <span class="p">{</span>
<span class="nb">fileinto</span> <span class="s">&quot;INBOX.${tag}&quot;</span><span class="p">;</span>
<span class="p">}</span> <span class="nb">else</span> <span class="p">{</span>
<span class="nb">fileinto</span> <span class="nt">:create</span> <span class="s">&quot;INBOX.${tag}&quot;</span><span class="p">;</span>
<span class="p">}</span>
<span class="p">}</span>
</code></pre></div>
<p>When receiving mail for <code>user+social@example.com</code> it would be delivered into the <code>INBOX/Social</code> folder.</p>
</div>
<details class="tip">
<summary>Only redirect mail for specific tags</summary>
<p>If you want to only handle specific tags, you could replace the envelope condition and tag assignment from the prior example with:</p>
<div class="highlight"><span class="filename">docker-data/dms/config/user@example.com.dovecot.sieve</span><pre><span></span><code><span class="c1"># Instead of `:matches`, use the default comparator `:is` (exact match)</span>
<span class="nb">if</span> <span class="nb">envelope</span> <span class="nt">:detail</span> <span class="s">&quot;to&quot;</span> <span class="s">&quot;social&quot;</span> <span class="p">{</span>
<span class="kd">set</span> <span class="s">&quot;tag&quot;</span> <span class="s">&quot;Social&quot;</span><span class="p">;</span>
</code></pre></div>
<div class="highlight"><span class="filename">docker-data/dms/config/user@example.com.dovecot.sieve</span><pre><span></span><code><span class="c1"># Alternatively you can also provide a list of values to match:</span>
<span class="nb">if</span> <span class="nb">envelope</span> <span class="nt">:detail</span> <span class="s">&quot;to&quot;</span> <span class="p">[</span><span class="s">&quot;azure&quot;</span><span class="p">,</span> <span class="s">&quot;aws&quot;</span><span class="p">]</span> <span class="p">{</span>
<span class="kd">set</span> <span class="s">&quot;tag&quot;</span> <span class="s">&quot;Cloud&quot;</span><span class="p">;</span>
</code></pre></div>
<div class="highlight"><span class="filename">docker-data/dms/config/user@example.com.dovecot.sieve</span><pre><span></span><code><span class="c1"># Similar to `:matches`, except `:regex` provides enhanced pattern matching.</span>
<span class="c1"># NOTE: This example needs you to `require` the &quot;regex&quot; extension</span>
<span class="nb">if</span> <span class="nb">envelope</span> <span class="nt">:detail</span> <span class="nt">:regex</span> <span class="s">&quot;to&quot;</span> <span class="s">&quot;^cloud-(azure|aws)$&quot;</span> <span class="p">{</span>
<span class="c1"># Normalize the captured azure/aws tag as the resolved value is no longer fixed:</span>
<span class="kd">set</span> <span class="nt">:lower</span> <span class="nt">:upperfirst</span> <span class="s">&quot;vendor&quot;</span> <span class="s">&quot;${1}&quot;</span><span class="p">;</span>
<span class="c1"># If a `.` exists in the tag, it will create nested folders:</span>
<span class="kd">set</span> <span class="s">&quot;tag&quot;</span> <span class="s">&quot;Cloud.${vendor}&quot;</span><span class="p">;</span>
</code></pre></div>
<p><strong>NOTE:</strong> There is no need to lowercase the tag in the conditional as the <a href="https://thsmi.github.io/sieve-reference/en/test/core/envelope.html"><code>to</code> value is a case-insensitive check</a>.</p>
</details>
<details class="abstract">
<summary>Technical Details</summary>
<ul>
<li>Dovecot supports this feature via the <em>Sieve subaddress extension</em> (<a href="https://datatracker.ietf.org/doc/html/rfc5233">RFC 5233</a>).</li>
<li>Only a single tag per subaddress is supported. Any additional tag delimiters are part of the tag value itself.</li>
<li>The Dovecot setting <a href="https://doc.dovecot.org/settings/core/#core_setting-recipient_delimiter"><code>recipient_delimiter</code></a> (default: <code>+</code>) configures the tag delimiter. This is where the <code>local-part</code> of the recipient address will split at, providing the <code>:detail</code> (tag) value for Sieve.</li>
</ul>
<hr />
<p><code>INBOX</code> is the <a href="https://doc.dovecot.org/configuration_manual/namespace/">default namespace configured by Dovecot</a>.</p>
<ul>
<li>If you omit the <code>INBOX.</code> prefix from the sieve script above, the mailbox (folder) for that tag is created at the top-level alongside your Trash and Junk folders.</li>
<li>The <code>.</code> between <code>INBOX</code> and <code>${tag}</code> is important as a <a href="https://doc.dovecot.org/configuration_manual/sieve/usage/#mailbox-names">separator to distinguish mailbox names</a>. This can vary by mailbox format or configuration. DMS uses <a href="https://doc.dovecot.org/admin_manual/mailbox_formats/maildir/#maildir-mbox-format"><code>Maildir</code></a> by default, which uses <code>.</code> as the separator.</li>
<li><a href="https://doc.dovecot.org/settings/core/#core_setting-lmtp_save_to_detail_mailbox"><code>lmtp_save_to_detail_mailbox = yes</code></a> can be set in <code>/etc/dovecot/conf.d/20-lmtp.conf</code>:<ul>
<li>This implements the feature globally, except for the tag normalization and <code>INBOX.</code> prefix parts of the example script.</li>
<li>However, if the sieve script is also present, the script has precedence and will handle this task instead when the condition is successful, otherwise falling back to the global feature.</li>
</ul>
</li>
</ul>
</details>
<h2 id="manage-sieve"><a class="toclink" href="#manage-sieve">Manage Sieve</a></h2>
<p>The <a href="https://doc.dovecot.org/admin_manual/pigeonhole_managesieve_server/">Manage Sieve</a> extension allows users to modify their Sieve script by themselves. The authentication mechanisms are the same as for the main dovecot service. ManageSieve runs on port <code>4190</code> and needs to be enabled using the <code>ENABLE_MANAGESIEVE=1</code> environment variable.</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<div class="highlight"><pre><span></span><code><span class="c1"># compose.yaml</span>
<span class="nt">ports</span><span class="p">:</span>
<div class="highlight"><span class="filename">compose.yaml</span><pre><span></span><code><span class="nt">ports</span><span class="p">:</span>
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="s">&quot;4190:4190&quot;</span>
<span class="nt">environment</span><span class="p">:</span>
<span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">ENABLE_MANAGESIEVE=1</span>

View file

@ -555,12 +555,52 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2" >
<label class="md-nav__link" for="__nav_4_2" id="__nav_4_2_label" tabindex="0">
<span class="md-ellipsis">
Account Management
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2">
<span class="md-nav__icon md-icon"></span>
Account Management
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../user-management/" class="md-nav__link">
<a href="../../../account-management/overview/" class="md-nav__link">
<span class="md-ellipsis">
User Management
Overview
</span>
@ -583,6 +623,194 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_2" >
<label class="md-nav__link" for="__nav_4_2_2" id="__nav_4_2_2_label" tabindex="0">
<span class="md-ellipsis">
Provisioner
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_2">
<span class="md-nav__icon md-icon"></span>
Provisioner
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../account-management/provisioner/file/" class="md-nav__link">
<span class="md-ellipsis">
File Based
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../account-management/provisioner/ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Service
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_3" >
<label class="md-nav__link" for="__nav_4_2_3" id="__nav_4_2_3_label" tabindex="0">
<span class="md-ellipsis">
Supplementary
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_3">
<span class="md-nav__icon md-icon"></span>
Supplementary
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../account-management/supplementary/master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Master Accounts
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../account-management/supplementary/oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
@ -1152,48 +1380,6 @@
<li class="md-nav__item">
<a href="../../auth-ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../auth-oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../mail-sieve/" class="md-nav__link">
@ -1270,10 +1456,10 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_8_9" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_8_7" >
<label class="md-nav__link" for="__nav_4_8_9" id="__nav_4_8_9_label" tabindex="0">
<label class="md-nav__link" for="__nav_4_8_7" id="__nav_4_8_7_label" tabindex="0">
<span class="md-ellipsis">
@ -1284,8 +1470,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8_9">
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8_7">
<span class="md-nav__icon md-icon"></span>
Email Forwarding
</label>
@ -1446,27 +1632,6 @@
<li class="md-nav__item">
<a href="../../dovecot-master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Dovecot Master Accounts
</span>
</a>
</li>
</ul>
</nav>

View file

@ -562,12 +562,52 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2" >
<label class="md-nav__link" for="__nav_4_2" id="__nav_4_2_label" tabindex="0">
<span class="md-ellipsis">
Account Management
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2">
<span class="md-nav__icon md-icon"></span>
Account Management
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../user-management/" class="md-nav__link">
<a href="../../account-management/overview/" class="md-nav__link">
<span class="md-ellipsis">
User Management
Overview
</span>
@ -590,6 +630,194 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_2" >
<label class="md-nav__link" for="__nav_4_2_2" id="__nav_4_2_2_label" tabindex="0">
<span class="md-ellipsis">
Provisioner
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_2">
<span class="md-nav__icon md-icon"></span>
Provisioner
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../account-management/provisioner/file/" class="md-nav__link">
<span class="md-ellipsis">
File Based
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../account-management/provisioner/ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Service
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_3" >
<label class="md-nav__link" for="__nav_4_2_3" id="__nav_4_2_3_label" tabindex="0">
<span class="md-ellipsis">
Supplementary
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_3">
<span class="md-nav__icon md-icon"></span>
Supplementary
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../account-management/supplementary/master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Master Accounts
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../account-management/supplementary/oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
@ -1262,48 +1490,6 @@
<li class="md-nav__item">
<a href="../auth-ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../auth-oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../mail-sieve/" class="md-nav__link">
@ -1380,10 +1566,10 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_8_9" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_8_7" >
<label class="md-nav__link" for="__nav_4_8_9" id="__nav_4_8_9_label" tabindex="0">
<label class="md-nav__link" for="__nav_4_8_7" id="__nav_4_8_7_label" tabindex="0">
<span class="md-ellipsis">
@ -1394,8 +1580,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8_9">
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8_7">
<span class="md-nav__icon md-icon"></span>
Email Forwarding
</label>
@ -1556,27 +1742,6 @@
<li class="md-nav__item">
<a href="../dovecot-master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Dovecot Master Accounts
</span>
</a>
</li>
</ul>
</nav>
@ -2304,7 +2469,7 @@
<li><a href="#volumes-config">Config</a>: <code>docker-data/dms/config/</code> =&gt; <code>/tmp/docker-mailserver/</code></li>
<li><a href="#volumes-mail">Mail Storage</a>: <code>docker-data/dms/mail-data/</code> =&gt; <code>/var/mail/</code></li>
<li><a href="#volumes-state">State</a>: <code>docker-data/dms/mail-state/</code> =&gt; <code>/var/mail-state/</code></li>
<li><a href="#volumes-logs">Logs</a>: <code>docker-data/dms/mail-logs/</code> =&gt; <code>/var/log/mail/</code></li>
<li><a href="#volumes-log">Logs</a>: <code>docker-data/dms/mail-logs/</code> =&gt; <code>/var/log/mail/</code></li>
</ul>
</div>
<h3 id="volumes-mail"><a class="toclink" href="#volumes-mail">Mail Storage Volume</a></h3>
@ -2356,9 +2521,9 @@
<li><strong>postfix-send-access.cf:</strong> List of users denied sending. Modify via <a href="../../setup.sh/"><code>setup.sh email restrict</code></a>.</li>
<li><strong>postfix-receive-access.cf:</strong> List of users denied receiving. Modify via <a href="../../setup.sh/"><code>setup.sh email restrict</code></a>.</li>
<li><strong>postfix-virtual.cf:</strong> Alias configuration file. Modify via <a href="../../setup.sh/"><code>setup.sh alias</code></a>.</li>
<li><strong>postfix-sasl-password.cf:</strong> listing of relayed domains with their respective <code>&lt;username&gt;:&lt;password&gt;</code>. Modify via <code>setup.sh relay add-auth &lt;domain&gt; &lt;username&gt; [&lt;password&gt;]</code>. (Docs: <a href="../mail-forwarding/relay-hosts/#sender-dependent-authentication">Relay-Hosts Auth</a>)</li>
<li><strong>postfix-relaymap.cf:</strong> domain-specific relays and exclusions. Modify via <code>setup.sh relay add-domain</code> and <code>setup.sh relay exclude-domain</code>. (Docs: <a href="../mail-forwarding/relay-hosts/#sender-dependent-relay-host">Relay-Hosts Senders</a>)</li>
<li><strong>postfix-regexp.cf:</strong> Regular expression alias file. (Docs: <a href="../../user-management/#configuring-regexp-aliases">Aliases</a>)</li>
<li><strong>postfix-sasl-password.cf:</strong> listing of relayed domains with their respective <code>&lt;username&gt;:&lt;password&gt;</code>. Modify via <code>setup.sh relay add-auth &lt;domain&gt; &lt;username&gt; [&lt;password&gt;]</code>. (Docs: <a href="../mail-forwarding/relay-hosts/#advanced-configuration">Relay-Hosts Auth</a>)</li>
<li><strong>postfix-relaymap.cf:</strong> domain-specific relays and exclusions. Modify via <code>setup.sh relay add-domain</code> and <code>setup.sh relay exclude-domain</code>. (Docs: <a href="../mail-forwarding/relay-hosts/#advanced-configuration">Relay-Hosts Senders</a>)</li>
<li><strong>postfix-regexp.cf:</strong> Regular expression alias file. (Docs: <a href="../../account-management/provisioner/file/#configuring-regex-aliases">Aliases</a>)</li>
<li><strong>ldap-users.cf:</strong> Configuration for the virtual user mapping <code>virtual_mailbox_maps</code>. See the <a href="https://github.com/docker-mailserver/docker-mailserver/blob/941e7acdaebe271eaf3d296b36d4d81df4c54b90/target/scripts/startup/setup-stack.sh#L411"><code>setup-stack.sh</code></a> script.</li>
<li><strong>ldap-groups.cf:</strong> Configuration for the virtual alias mapping <code>virtual_alias_maps</code>. See the <a href="https://github.com/docker-mailserver/docker-mailserver/blob/941e7acdaebe271eaf3d296b36d4d81df4c54b90/target/scripts/startup/setup-stack.sh#L411"><code>setup-stack.sh</code></a> script.</li>
<li><strong>ldap-aliases.cf:</strong> Configuration for the virtual alias mapping <code>virtual_alias_maps</code>. See the <a href="https://github.com/docker-mailserver/docker-mailserver/blob/941e7acdaebe271eaf3d296b36d4d81df4c54b90/target/scripts/startup/setup-stack.sh#L411"><code>setup-stack.sh</code></a> script.</li>
@ -2369,7 +2534,7 @@
<li><strong>fail2ban-jail.cf:</strong> Additional config options for fail2ban's jail behavior. (Docs: <a href="../../security/fail2ban/">Fail2Ban</a>)</li>
<li><strong>amavis.cf:</strong> replaces the <code>/etc/amavis/conf.d/50-user</code> file</li>
<li><strong>dovecot.cf:</strong> replaces <code>/etc/dovecot/local.conf</code>. (Docs: <a href="../override-defaults/dovecot/">Override Dovecot Defaults</a>)</li>
<li><strong>dovecot-quotas.cf:</strong> list of custom quotas per mailbox. (Docs: <a href="../../user-management/#quotas">Accounts</a>)</li>
<li><strong>dovecot-quotas.cf:</strong> list of custom quotas per mailbox. (Docs: <a href="../../account-management/provisioner/file/#quotas">Accounts</a>)</li>
<li><strong>user-patches.sh:</strong> this file will be run after all configuration files are set up, but before the postfix, amavis and other daemons are started. (Docs: <a href="../../../faq/#how-to-adjust-settings-with-the-user-patchessh-script">FAQ - How to adjust settings with the <code>user-patches.sh</code> script</a>)</li>
<li><strong>rspamd/custom-commands.conf:</strong> list of simple commands to adjust Rspamd modules in an easy way (Docs: <a href="../../security/rspamd/#with-the-help-of-a-custom-file">Rspamd</a>)</li>
</ul>

View file

@ -560,12 +560,52 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2" >
<label class="md-nav__link" for="__nav_4_2" id="__nav_4_2_label" tabindex="0">
<span class="md-ellipsis">
Account Management
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2">
<span class="md-nav__icon md-icon"></span>
Account Management
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../user-management/" class="md-nav__link">
<a href="../../../account-management/overview/" class="md-nav__link">
<span class="md-ellipsis">
User Management
Overview
</span>
@ -588,6 +628,194 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_2" >
<label class="md-nav__link" for="__nav_4_2_2" id="__nav_4_2_2_label" tabindex="0">
<span class="md-ellipsis">
Provisioner
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_2">
<span class="md-nav__icon md-icon"></span>
Provisioner
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../account-management/provisioner/file/" class="md-nav__link">
<span class="md-ellipsis">
File Based
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../account-management/provisioner/ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Service
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_3" >
<label class="md-nav__link" for="__nav_4_2_3" id="__nav_4_2_3_label" tabindex="0">
<span class="md-ellipsis">
Supplementary
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_3">
<span class="md-nav__icon md-icon"></span>
Supplementary
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../account-management/supplementary/master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Master Accounts
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../account-management/supplementary/oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
@ -1212,48 +1440,6 @@
<li class="md-nav__item">
<a href="../../auth-ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../auth-oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../mail-sieve/" class="md-nav__link">
@ -1330,10 +1516,10 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_8_9" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_8_7" >
<label class="md-nav__link" for="__nav_4_8_9" id="__nav_4_8_9_label" tabindex="0">
<label class="md-nav__link" for="__nav_4_8_7" id="__nav_4_8_7_label" tabindex="0">
<span class="md-ellipsis">
@ -1344,8 +1530,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8_9">
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8_7">
<span class="md-nav__icon md-icon"></span>
Email Forwarding
</label>
@ -1506,27 +1692,6 @@
<li class="md-nav__item">
<a href="../../dovecot-master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Dovecot Master Accounts
</span>
</a>
</li>
</ul>
</nav>

View file

@ -555,12 +555,52 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2" >
<label class="md-nav__link" for="__nav_4_2" id="__nav_4_2_label" tabindex="0">
<span class="md-ellipsis">
Account Management
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2">
<span class="md-nav__icon md-icon"></span>
Account Management
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../user-management/" class="md-nav__link">
<a href="../../../account-management/overview/" class="md-nav__link">
<span class="md-ellipsis">
User Management
Overview
</span>
@ -583,6 +623,194 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_2" >
<label class="md-nav__link" for="__nav_4_2_2" id="__nav_4_2_2_label" tabindex="0">
<span class="md-ellipsis">
Provisioner
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_2">
<span class="md-nav__icon md-icon"></span>
Provisioner
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../account-management/provisioner/file/" class="md-nav__link">
<span class="md-ellipsis">
File Based
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../account-management/provisioner/ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Service
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_3" >
<label class="md-nav__link" for="__nav_4_2_3" id="__nav_4_2_3_label" tabindex="0">
<span class="md-ellipsis">
Supplementary
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_3">
<span class="md-nav__icon md-icon"></span>
Supplementary
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../account-management/supplementary/master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Master Accounts
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../account-management/supplementary/oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
@ -1152,48 +1380,6 @@
<li class="md-nav__item">
<a href="../../auth-ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../auth-oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../mail-sieve/" class="md-nav__link">
@ -1270,10 +1456,10 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_8_9" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_8_7" >
<label class="md-nav__link" for="__nav_4_8_9" id="__nav_4_8_9_label" tabindex="0">
<label class="md-nav__link" for="__nav_4_8_7" id="__nav_4_8_7_label" tabindex="0">
<span class="md-ellipsis">
@ -1284,8 +1470,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8_9">
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8_7">
<span class="md-nav__icon md-icon"></span>
Email Forwarding
</label>
@ -1446,27 +1632,6 @@
<li class="md-nav__item">
<a href="../../dovecot-master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Dovecot Master Accounts
</span>
</a>
</li>
</ul>
</nav>

View file

@ -18,7 +18,7 @@
<link rel="prev" href="../postfix/">
<link rel="next" href="../../auth-ldap/">
<link rel="next" href="../../mail-sieve/">
<link rel="icon" href="../../../../assets/logo/favicon-32x32.png">
@ -555,12 +555,52 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2" >
<label class="md-nav__link" for="__nav_4_2" id="__nav_4_2_label" tabindex="0">
<span class="md-ellipsis">
Account Management
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2">
<span class="md-nav__icon md-icon"></span>
Account Management
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../user-management/" class="md-nav__link">
<a href="../../../account-management/overview/" class="md-nav__link">
<span class="md-ellipsis">
User Management
Overview
</span>
@ -583,6 +623,194 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_2" >
<label class="md-nav__link" for="__nav_4_2_2" id="__nav_4_2_2_label" tabindex="0">
<span class="md-ellipsis">
Provisioner
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_2">
<span class="md-nav__icon md-icon"></span>
Provisioner
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../account-management/provisioner/file/" class="md-nav__link">
<span class="md-ellipsis">
File Based
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../account-management/provisioner/ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Service
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_3" >
<label class="md-nav__link" for="__nav_4_2_3" id="__nav_4_2_3_label" tabindex="0">
<span class="md-ellipsis">
Supplementary
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_3">
<span class="md-nav__icon md-icon"></span>
Supplementary
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../account-management/supplementary/master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Master Accounts
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../../account-management/supplementary/oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
@ -1152,48 +1380,6 @@
<li class="md-nav__item">
<a href="../../auth-ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../auth-oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../mail-sieve/" class="md-nav__link">
@ -1270,10 +1456,10 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_8_9" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_8_7" >
<label class="md-nav__link" for="__nav_4_8_9" id="__nav_4_8_9_label" tabindex="0">
<label class="md-nav__link" for="__nav_4_8_7" id="__nav_4_8_7_label" tabindex="0">
<span class="md-ellipsis">
@ -1284,8 +1470,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8_9">
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8_7">
<span class="md-nav__icon md-icon"></span>
Email Forwarding
</label>
@ -1446,27 +1632,6 @@
<li class="md-nav__item">
<a href="../../dovecot-master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Dovecot Master Accounts
</span>
</a>
</li>
</ul>
</nav>

View file

@ -18,7 +18,7 @@
<link rel="prev" href="../ipv6/">
<link rel="next" href="../dovecot-master-accounts/">
<link rel="next" href="../../../examples/tutorials/basic-installation/">
<link rel="icon" href="../../../assets/logo/favicon-32x32.png">
@ -560,12 +560,52 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2" >
<label class="md-nav__link" for="__nav_4_2" id="__nav_4_2_label" tabindex="0">
<span class="md-ellipsis">
Account Management
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2">
<span class="md-nav__icon md-icon"></span>
Account Management
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../user-management/" class="md-nav__link">
<a href="../../account-management/overview/" class="md-nav__link">
<span class="md-ellipsis">
User Management
Overview
</span>
@ -588,6 +628,194 @@
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_2" >
<label class="md-nav__link" for="__nav_4_2_2" id="__nav_4_2_2_label" tabindex="0">
<span class="md-ellipsis">
Provisioner
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_2">
<span class="md-nav__icon md-icon"></span>
Provisioner
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../account-management/provisioner/file/" class="md-nav__link">
<span class="md-ellipsis">
File Based
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../account-management/provisioner/ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Service
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_2_3" >
<label class="md-nav__link" for="__nav_4_2_3" id="__nav_4_2_3_label" tabindex="0">
<span class="md-ellipsis">
Supplementary
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_2_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_2_3">
<span class="md-nav__icon md-icon"></span>
Supplementary
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../account-management/supplementary/master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Master Accounts
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../../account-management/supplementary/oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
@ -1149,48 +1377,6 @@
<li class="md-nav__item">
<a href="../auth-ldap/" class="md-nav__link">
<span class="md-ellipsis">
LDAP Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../auth-oauth2/" class="md-nav__link">
<span class="md-ellipsis">
OAuth2 Authentication
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../mail-sieve/" class="md-nav__link">
@ -1267,10 +1453,10 @@
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_8_9" >
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_4_8_7" >
<label class="md-nav__link" for="__nav_4_8_9" id="__nav_4_8_9_label" tabindex="0">
<label class="md-nav__link" for="__nav_4_8_7" id="__nav_4_8_7_label" tabindex="0">
<span class="md-ellipsis">
@ -1281,8 +1467,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8_9">
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_4_8_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_4_8_7">
<span class="md-nav__icon md-icon"></span>
Email Forwarding
</label>
@ -1578,27 +1764,6 @@
<li class="md-nav__item">
<a href="../dovecot-master-accounts/" class="md-nav__link">
<span class="md-ellipsis">
Dovecot Master Accounts
</span>
</a>
</li>
</ul>
</nav>
@ -2406,7 +2571,7 @@ docker<span class="w"> </span>compose<span class="w"> </span>ps
<p>The <code>PERMIT_DOCKER</code> variable in the <code>mailserver.env</code> file allows to specify trusted networks that do not need to authenticate. If the variable is left empty, only requests from localhost and the container IP are allowed, but in the case of rootless podman any IP will be resolved as localhost. Setting <code>PERMIT_DOCKER=none</code> enforces authentication also from localhost, which prevents sending unauthenticated emails.</p>
<h4 id="use-the-slip4netns-network-driver"><a class="toclink" href="#use-the-slip4netns-network-driver">Use the slip4netns network driver</a></h4>
<p>The second workaround is slightly more complicated because the <code>compose.yaml</code> has to be modified.
As shown in the <a href="../../security/fail2ban/#podman-with-slirp4netns-port-driver">fail2ban section</a> the <code>slirp4netns</code> network driver has to be enabled.
As shown in the <a href="../../security/fail2ban/#rootless-container">fail2ban section</a> the <code>slirp4netns</code> network driver has to be enabled.
This network driver enables podman to correctly resolve IP addresses but it is not compatible with
user defined networks which might be a problem depending on your setup.</p>
<p><a href="https://github.com/containers/podman/blob/v3.4.1/docs/source/markdown/podman-run.1.md#--networkmode---net">Rootless Podman</a> requires adding the value <code>slirp4netns:port_handler=slirp4netns</code> to the <code>--network</code> CLI option, or <code>network_mode</code> setting in your <code>compose.yaml</code>.</p>
@ -2436,7 +2601,7 @@ systemctl<span class="w"> </span><span class="nb">enable</span><span class="w">
</code></pre></div>
<p>Remember to run this command as root user.</p>
<h3 id="port-forwarding"><a class="toclink" href="#port-forwarding">Port Forwarding</a></h3>
<p>When it comes to forwarding ports using <code>firewalld</code>, see <a href="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/securing_networks/using-and-configuring-firewalld_securing-networks#port-forwarding_using-and-configuring-firewalld">https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/securing_networks/using-and-configuring-firewalld_securing-networks#port-forwarding_using-and-configuring-firewalld</a> for more information.</p>
<p>When it comes to forwarding ports using <code>firewalld</code>, see <a href="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/securing_networks/using-and-configuring-firewalld_securing-networks#port-forwarding_using-and-configuring-firewalld">these port forwarding docs</a> for more information.</p>
<div class="highlight"><pre><span></span><code>firewall-cmd<span class="w"> </span>--permanent<span class="w"> </span>--add-forward-port<span class="o">=</span><span class="nv">port</span><span class="o">=</span>&lt;<span class="m">25</span><span class="p">|</span><span class="m">143</span><span class="p">|</span><span class="m">465</span><span class="p">|</span><span class="m">587</span><span class="p">|</span><span class="m">993</span>&gt;:proto<span class="o">=</span>&lt;tcp&gt;:toport<span class="o">=</span>&lt;<span class="m">10025</span><span class="p">|</span><span class="m">10143</span><span class="p">|</span><span class="m">10465</span><span class="p">|</span><span class="m">10587</span><span class="p">|</span><span class="m">10993</span>&gt;
...