Sync iRedMail upgrade tutorial.
Sync iRedAdmin-Pro RESTful API doc.
This commit is contained in:
parent
8db79c0e97
commit
325992eaa2
|
@ -24,7 +24,7 @@ sql> INSERT INTO domain_admins (username, domain) VALUES ('john@example.com', 'A
|
|||
|
||||
That's it, you can now login to iRedAdmin as `john@example.com` (with `john@example.com`'s password).
|
||||
|
||||
To promote user `smith@test.com` to be admin of domain `test.com`:
|
||||
To promote user `smith@test.com` to be admin of domain `test.com` (Note: normal domain admin is only available in iRedAdmin-Pro):
|
||||
|
||||
```
|
||||
sql> USE vmail;
|
||||
|
|
|
@ -721,9 +721,9 @@ Notes:
|
|||
|
||||
### Whitelisting and Blacklisting {: .toggle }
|
||||
|
||||
Valid whitelisting and blacklisting addresses:
|
||||
Valid whitelisting and blacklisting addresses. __Invalid addresses will be discarded silently.__
|
||||
|
||||
Address | Samples
|
||||
Address | Examples
|
||||
--- |---
|
||||
Single IP Address | `192.168.2.10`
|
||||
IP CIDR Network | `192.168.2.0/24`, `2620:0:2d0:200::7/128`
|
||||
|
@ -732,29 +732,61 @@ Entire email domain | `@domain.ltd`
|
|||
Entire email domain and all its sub-domains | `@.domain.ltd`
|
||||
Catch-all address | `@.`
|
||||
|
||||
Invalid addresses will be discarded silently.
|
||||
|
||||
<br/>
|
||||
|
||||
!!! api "`GET`{: .get } `/api/wblist/inbound/whitelist/global`{: .url } `Get global whitelists for inbound.`{: .comment }"
|
||||
!!! api "`GET`{: .get } `/api/wblist/inbound/blacklist/global`{: .url } `Get global blacklists for inbound.`{: .comment }"
|
||||
!!! api "`GET`{: .get } `/api/wblist/outbound/whitelist/global`{: .url } `Get global whitelists for outbound.`{: .comment }"
|
||||
!!! api "`GET`{: .get } `/api/wblist/outbound/blacklist/global`{: .url } `Get global whitelists for outbound.`{: .comment }"
|
||||
!!! api "`GET`{: .get } `/api/wblist/inbound/whitelist/<domain>`{: .url } `Get per-domain whitelists for inbound.`{: .comment }"
|
||||
!!! api "`GET`{: .get } `/api/wblist/inbound/blacklist/<domain>`{: .url } `Get per-domain blacklists for inbound.`{: .comment }"
|
||||
!!! api "`GET`{: .get } `/api/wblist/outbound/whitelist/<domain>`{: .url } `Get per-domain whitelists for outbound.`{: .comment }"
|
||||
!!! api "`GET`{: .get } `/api/wblist/outbound/blacklist/<domain>`{: .url } `Get per-domain whitelists for outbound.`{: .comment }"
|
||||
!!! api "`GET`{: .get } `/api/wblist/inbound/whitelist/<mail>`{: .url } `Get per-user whitelists for inbound.`{: .comment }"
|
||||
!!! api "`GET`{: .get } `/api/wblist/inbound/blacklist/<mail>`{: .url } `Get per-user blacklists for inbound.`{: .comment }"
|
||||
!!! api "`GET`{: .get } `/api/wblist/outbound/whitelist/<mail>`{: .url } `Get per-user whitelists for outbound.`{: .comment }"
|
||||
!!! api "`GET`{: .get } `/api/wblist/outbound/blacklist/<mail>`{: .url } `Get per-user whitelists for outbound.`{: .comment }"
|
||||
|
||||
!!! api "`POST`{: .post } `/api/wblist/inbound/whitelist/global`{: .url } `Add new global whitelists for inbound.`{: .comment }"
|
||||
!!! api "`POST`{: .post } `/api/wblist/inbound/blacklist/global`{: .url } `Add new global blacklists for inbound.`{: .comment }"
|
||||
!!! api "`POST`{: .post } `/api/wblist/outbound/whitelist/global`{: .url } `Add new global whitelists for outbound.`{: .comment }"
|
||||
!!! api "`POST`{: .post } `/api/wblist/outbound/blacklist/global`{: .url } `Add new global whitelists for outbound.`{: .comment }"
|
||||
!!! api "`POST`{: .post } `/api/wblist/inbound/whitelist/global`{: .url } `Add new global whitelists for inbound.`{: .comment } `Parameters`{: .has_params_wblist }"
|
||||
!!! api "`POST`{: .post } `/api/wblist/inbound/blacklist/global`{: .url } `Add new global blacklists for inbound.`{: .comment } `Parameters`{: .has_params_wblist }"
|
||||
!!! api "`POST`{: .post } `/api/wblist/outbound/whitelist/global`{: .url } `Add new global whitelists for outbound.`{: .comment } `Parameters`{: .has_params_wblist }"
|
||||
!!! api "`POST`{: .post } `/api/wblist/outbound/blacklist/global`{: .url } `Add new global whitelists for outbound.`{: .comment } `Parameters`{: .has_params_wblist }"
|
||||
!!! api "`POST`{: .post } `/api/wblist/inbound/whitelist/<domain>`{: .url } `Add new per-domain whitelists for inbound.`{: .comment } `Parameters`{: .has_params_wblist }"
|
||||
!!! api "`POST`{: .post } `/api/wblist/inbound/blacklist/<domain>`{: .url } `Add new per-domain blacklists for inbound.`{: .comment } `Parameters`{: .has_params_wblist }"
|
||||
!!! api "`POST`{: .post } `/api/wblist/outbound/whitelist/<domain>`{: .url } `Add new per-domain whitelists for outbound.`{: .comment } `Parameters`{: .has_params_wblist }"
|
||||
!!! api "`POST`{: .post } `/api/wblist/outbound/blacklist/<domain>`{: .url } `Add new per-domain whitelists for outbound.`{: .comment } `Parameters`{: .has_params_wblist }"
|
||||
!!! api "`POST`{: .post } `/api/wblist/inbound/whitelist/<mail>`{: .url } `Add new per-user whitelists for inbound.`{: .comment } `Parameters`{: .has_params_wblist }"
|
||||
!!! api "`POST`{: .post } `/api/wblist/inbound/blacklist/<mail>`{: .url } `Add new per-user blacklists for inbound.`{: .comment } `Parameters`{: .has_params_wblist }"
|
||||
!!! api "`POST`{: .post } `/api/wblist/outbound/whitelist/<mail>`{: .url } `Add new per-user whitelists for outbound.`{: .comment } `Parameters`{: .has_params_wblist }"
|
||||
!!! api "`POST`{: .post } `/api/wblist/outbound/blacklist/<mail>`{: .url } `Add new per-user whitelists for outbound.`{: .comment } `Parameters`{: .has_params_wblist }"
|
||||
|
||||
!!! api "`PUT`{: .put } `/api/wblist/inbound/whitelist/global`{: .url } `Delete given global whitelists for inbound.`{: .comment }"
|
||||
!!! api "`PUT`{: .put } `/api/wblist/inbound/blacklist/global`{: .url } `Delete given global blacklists for inbound.`{: .comment }"
|
||||
!!! api "`PUT`{: .put } `/api/wblist/outbound/whitelist/global`{: .url } `Delete given global whitelists for outbound.`{: .comment }"
|
||||
!!! api "`PUT`{: .put } `/api/wblist/outbound/blacklist/global`{: .url } `Delete given global whitelists for outbound.`{: .comment }"
|
||||
<div class="params params_wblist">
|
||||
|
||||
Parameters available for global, per-domain and per-user whitelist/blacklist settings.
|
||||
|
||||
Parameter | Summary | Sample Usage
|
||||
--- |--- |---
|
||||
`addresses` | The addresses you want to whitelist or blacklist.<br/>Multiple addresses must be separated by comma. | `addresses=user1@domain.com,192.168.1.10`
|
||||
|
||||
</div>
|
||||
|
||||
!!! api "`PUT`{: .put } `/api/wblist/inbound/whitelist/global`{: .url } `Delete existing global whitelists for inbound.`{: .comment }"
|
||||
!!! api "`PUT`{: .put } `/api/wblist/inbound/blacklist/global`{: .url } `Delete existing global blacklists for inbound.`{: .comment }"
|
||||
!!! api "`PUT`{: .put } `/api/wblist/outbound/whitelist/global`{: .url } `Delete existing global whitelists for outbound.`{: .comment }"
|
||||
!!! api "`PUT`{: .put } `/api/wblist/outbound/blacklist/global`{: .url } `Delete existing global whitelists for outbound.`{: .comment }"
|
||||
|
||||
!!! api "`DELETE`{: .delete } `/api/wblist/inbound/whitelist/global`{: .url } `Delete all existing global whitelists for inbound.`{: .comment }"
|
||||
!!! api "`DELETE`{: .delete } `/api/wblist/inbound/blacklist/global`{: .url } `Delete all existing global blacklists for inbound.`{: .comment }"
|
||||
!!! api "`DELETE`{: .delete } `/api/wblist/outbound/whitelist/global`{: .url } `Delete all existing global whitelists for outbound.`{: .comment }"
|
||||
!!! api "`DELETE`{: .delete } `/api/wblist/outbound/blacklist/global`{: .url } `Delete all existing global whitelists for outbound.`{: .comment }"
|
||||
!!! api "`DELETE`{: .delete } `/api/wblist/inbound/whitelist/<domain>`{: .url } `Delete all per-domain global whitelists for inbound.`{: .comment }"
|
||||
!!! api "`DELETE`{: .delete } `/api/wblist/inbound/blacklist/<domain>`{: .url } `Delete all per-domain global blacklists for inbound.`{: .comment }"
|
||||
!!! api "`DELETE`{: .delete } `/api/wblist/outbound/whitelist/<domain>`{: .url } `Delete all per-domain existing global whitelists for outbound.`{: .comment }"
|
||||
!!! api "`DELETE`{: .delete } `/api/wblist/outbound/blacklist/<domain>`{: .url } `Delete all per-domain existing global whitelists for outbound.`{: .comment }"
|
||||
!!! api "`DELETE`{: .delete } `/api/wblist/inbound/whitelist/<mail>`{: .url } `Delete all per-user existing global whitelists for inbound.`{: .comment }"
|
||||
!!! api "`DELETE`{: .delete } `/api/wblist/inbound/blacklist/<mail>`{: .url } `Delete all per-user existing global blacklists for inbound.`{: .comment }"
|
||||
!!! api "`DELETE`{: .delete } `/api/wblist/outbound/whitelist/<mail>`{: .url } `Delete all per-user existing global whitelists for outbound.`{: .comment }"
|
||||
!!! api "`DELETE`{: .delete } `/api/wblist/outbound/blacklist/<mail>`{: .url } `Delete all per-user existing global whitelists for outbound.`{: .comment }"
|
||||
|
||||
|
||||
### Greylisting {: .toggle }
|
||||
|
|
|
@ -77,6 +77,37 @@ latest stable release immediately:
|
|||
|
||||
If you have netdata installed, you can upgrade it by following this tutorial: [Upgrade netdata](./upgrade.netdata.html).
|
||||
|
||||
### Fixed: improper order of Postfix smtpd_sender_restriction rules
|
||||
|
||||
iRedMail-0.9.9 and earlier releases didn't configure Postfix to apply custom
|
||||
restriction rule before querying DNS records of sender domain,
|
||||
this way you cannot whitelist some sender mail domains which don't have
|
||||
DNS records (especially your internal mail domains used in LAN). Please follow
|
||||
steps below to fix it.
|
||||
|
||||
* Open file `/etc/postfix/main.cf` (Linux/OpenBSD) or
|
||||
`/usr/local/etc/postfix/main.cf` (FreeBSD), find parameter
|
||||
`smtpd_sender_restrictions` like below:
|
||||
|
||||
```
|
||||
smtpd_sender_restrictions =
|
||||
reject_unknown_sender_domain
|
||||
...
|
||||
check_sender_access pcre:...
|
||||
```
|
||||
|
||||
* Move the `reject_unknown_sender_domain` line after `check_sender_access` line
|
||||
like below:
|
||||
|
||||
```
|
||||
smtpd_sender_restrictions =
|
||||
...
|
||||
check_sender_access pcre:...
|
||||
reject_unknown_sender_domain
|
||||
```
|
||||
|
||||
* Reloading or restarting Postfix service is required.
|
||||
|
||||
### Fail2ban: slightly loose filter rule for postfix
|
||||
|
||||
We received few reports from clients that Outlook for macOS may trigger some
|
||||
|
|
|
@ -2192,12 +2192,12 @@ to be a domain admin.</p>
|
|||
|
||||
</div>
|
||||
<h3 class="toggle" id="whitelisting-and-blacklisting">Whitelisting and Blacklisting</h3>
|
||||
<p>Valid whitelisting and blacklisting addresses:</p>
|
||||
<p>Valid whitelisting and blacklisting addresses. <strong>Invalid addresses will be discarded silently.</strong></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Address</th>
|
||||
<th>Samples</th>
|
||||
<th>Examples</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
@ -2227,7 +2227,6 @@ to be a domain admin.</p>
|
|||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>Invalid addresses will be discarded silently.</p>
|
||||
<p><br/></p>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/wblist/inbound/whitelist/global</code> <code class="comment">Get global whitelists for inbound.</code></p>
|
||||
|
@ -2242,28 +2241,97 @@ to be a domain admin.</p>
|
|||
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/wblist/outbound/blacklist/global</code> <code class="comment">Get global whitelists for outbound.</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/wblist/inbound/whitelist/global</code> <code class="comment">Add new global whitelists for inbound.</code></p>
|
||||
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/wblist/inbound/whitelist/<domain></code> <code class="comment">Get per-domain whitelists for inbound.</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/wblist/inbound/blacklist/global</code> <code class="comment">Add new global blacklists for inbound.</code></p>
|
||||
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/wblist/inbound/blacklist/<domain></code> <code class="comment">Get per-domain blacklists for inbound.</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/wblist/outbound/whitelist/global</code> <code class="comment">Add new global whitelists for outbound.</code></p>
|
||||
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/wblist/outbound/whitelist/<domain></code> <code class="comment">Get per-domain whitelists for outbound.</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/wblist/outbound/blacklist/global</code> <code class="comment">Add new global whitelists for outbound.</code></p>
|
||||
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/wblist/outbound/blacklist/<domain></code> <code class="comment">Get per-domain whitelists for outbound.</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="put">PUT</code> <code class="url">/api/wblist/inbound/whitelist/global</code> <code class="comment">Delete given global whitelists for inbound.</code></p>
|
||||
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/wblist/inbound/whitelist/<mail></code> <code class="comment">Get per-user whitelists for inbound.</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="put">PUT</code> <code class="url">/api/wblist/inbound/blacklist/global</code> <code class="comment">Delete given global blacklists for inbound.</code></p>
|
||||
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/wblist/inbound/blacklist/<mail></code> <code class="comment">Get per-user blacklists for inbound.</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="put">PUT</code> <code class="url">/api/wblist/outbound/whitelist/global</code> <code class="comment">Delete given global whitelists for outbound.</code></p>
|
||||
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/wblist/outbound/whitelist/<mail></code> <code class="comment">Get per-user whitelists for outbound.</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="put">PUT</code> <code class="url">/api/wblist/outbound/blacklist/global</code> <code class="comment">Delete given global whitelists for outbound.</code></p>
|
||||
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/wblist/outbound/blacklist/<mail></code> <code class="comment">Get per-user whitelists for outbound.</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/wblist/inbound/whitelist/global</code> <code class="comment">Add new global whitelists for inbound.</code> <code class="has_params_wblist">Parameters</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/wblist/inbound/blacklist/global</code> <code class="comment">Add new global blacklists for inbound.</code> <code class="has_params_wblist">Parameters</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/wblist/outbound/whitelist/global</code> <code class="comment">Add new global whitelists for outbound.</code> <code class="has_params_wblist">Parameters</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/wblist/outbound/blacklist/global</code> <code class="comment">Add new global whitelists for outbound.</code> <code class="has_params_wblist">Parameters</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/wblist/inbound/whitelist/<domain></code> <code class="comment">Add new per-domain whitelists for inbound.</code> <code class="has_params_wblist">Parameters</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/wblist/inbound/blacklist/<domain></code> <code class="comment">Add new per-domain blacklists for inbound.</code> <code class="has_params_wblist">Parameters</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/wblist/outbound/whitelist/<domain></code> <code class="comment">Add new per-domain whitelists for outbound.</code> <code class="has_params_wblist">Parameters</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/wblist/outbound/blacklist/<domain></code> <code class="comment">Add new per-domain whitelists for outbound.</code> <code class="has_params_wblist">Parameters</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/wblist/inbound/whitelist/<mail></code> <code class="comment">Add new per-user whitelists for inbound.</code> <code class="has_params_wblist">Parameters</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/wblist/inbound/blacklist/<mail></code> <code class="comment">Add new per-user blacklists for inbound.</code> <code class="has_params_wblist">Parameters</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/wblist/outbound/whitelist/<mail></code> <code class="comment">Add new per-user whitelists for outbound.</code> <code class="has_params_wblist">Parameters</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/wblist/outbound/blacklist/<mail></code> <code class="comment">Add new per-user whitelists for outbound.</code> <code class="has_params_wblist">Parameters</code></p>
|
||||
<div class="params params_wblist">
|
||||
|
||||
<p>Parameters available for global, per-domain and per-user whitelist/blacklist settings.</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Parameter</th>
|
||||
<th>Summary</th>
|
||||
<th>Sample Usage</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>addresses</code></td>
|
||||
<td>The addresses you want to whitelist or blacklist.<br/>Multiple addresses must be separated by comma.</td>
|
||||
<td><code>addresses=user1@domain.com,192.168.1.10</code></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="put">PUT</code> <code class="url">/api/wblist/inbound/whitelist/global</code> <code class="comment">Delete existing global whitelists for inbound.</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="put">PUT</code> <code class="url">/api/wblist/inbound/blacklist/global</code> <code class="comment">Delete existing global blacklists for inbound.</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="put">PUT</code> <code class="url">/api/wblist/outbound/whitelist/global</code> <code class="comment">Delete existing global whitelists for outbound.</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="put">PUT</code> <code class="url">/api/wblist/outbound/blacklist/global</code> <code class="comment">Delete existing global whitelists for outbound.</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="delete">DELETE</code> <code class="url">/api/wblist/inbound/whitelist/global</code> <code class="comment">Delete all existing global whitelists for inbound.</code></p>
|
||||
|
@ -2277,6 +2345,30 @@ to be a domain admin.</p>
|
|||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="delete">DELETE</code> <code class="url">/api/wblist/outbound/blacklist/global</code> <code class="comment">Delete all existing global whitelists for outbound.</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="delete">DELETE</code> <code class="url">/api/wblist/inbound/whitelist/<domain></code> <code class="comment">Delete all per-domain global whitelists for inbound.</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="delete">DELETE</code> <code class="url">/api/wblist/inbound/blacklist/<domain></code> <code class="comment">Delete all per-domain global blacklists for inbound.</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="delete">DELETE</code> <code class="url">/api/wblist/outbound/whitelist/<domain></code> <code class="comment">Delete all per-domain existing global whitelists for outbound.</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="delete">DELETE</code> <code class="url">/api/wblist/outbound/blacklist/<domain></code> <code class="comment">Delete all per-domain existing global whitelists for outbound.</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="delete">DELETE</code> <code class="url">/api/wblist/inbound/whitelist/<mail></code> <code class="comment">Delete all per-user existing global whitelists for inbound.</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="delete">DELETE</code> <code class="url">/api/wblist/inbound/blacklist/<mail></code> <code class="comment">Delete all per-user existing global blacklists for inbound.</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="delete">DELETE</code> <code class="url">/api/wblist/outbound/whitelist/<mail></code> <code class="comment">Delete all per-user existing global whitelists for outbound.</code></p>
|
||||
</div>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="delete">DELETE</code> <code class="url">/api/wblist/outbound/blacklist/<mail></code> <code class="comment">Delete all per-user existing global whitelists for outbound.</code></p>
|
||||
</div>
|
||||
<h3 class="toggle" id="greylisting">Greylisting</h3>
|
||||
<div class="admonition api">
|
||||
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/greylisting/all</code> <code class="comment">Get all existing greylisting settings</code></p>
|
||||
|
|
|
@ -46,7 +46,7 @@ sql> INSERT INTO domain_admins (username, domain) VALUES ('john@example.com',
|
|||
</code></pre>
|
||||
|
||||
<p>That's it, you can now login to iRedAdmin as <code>john@example.com</code> (with <code>john@example.com</code>'s password).</p>
|
||||
<p>To promote user <code>smith@test.com</code> to be admin of domain <code>test.com</code>:</p>
|
||||
<p>To promote user <code>smith@test.com</code> to be admin of domain <code>test.com</code> (Note: normal domain admin is only available in iRedAdmin-Pro):</p>
|
||||
<pre><code>sql> USE vmail;
|
||||
sql> UPDATE mailbox SET isadmin=1, isglobaladmin=0 WHERE username='smith@test.com';
|
||||
sql> INSERT INTO domain_admins (username, domain) VALUES ('smith@test.com', 'test.com');
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
<li><a href="#upgrade-mlmmjadmin-to-the-latest-stable-release-21">Upgrade mlmmjadmin to the latest stable release (2.1)</a></li>
|
||||
<li><a href="#upgrade-roundcube-webmail-to-the-latest-stable-release">Upgrade Roundcube webmail to the latest stable release</a></li>
|
||||
<li><a href="#upgrade-netdata-to-the-latest-stable-release-1150">Upgrade netdata to the latest stable release (1.15.0)</a></li>
|
||||
<li><a href="#fixed-improper-order-of-postfix-smtpd_sender_restriction-rules">Fixed: improper order of Postfix smtpd_sender_restriction rules</a></li>
|
||||
<li><a href="#fail2ban-slightly-loose-filter-rule-for-postfix">Fail2ban: slightly loose filter rule for postfix</a></li>
|
||||
<li><a href="#optional-enable-srs-sender-rewriting-scheme-support-in-postfix">[OPTIONAL] Enable SRS (Sender Rewriting Scheme) support in Postfix</a></li>
|
||||
</ul>
|
||||
|
@ -96,6 +97,36 @@ latest stable release immediately:</p>
|
|||
</ul>
|
||||
<h3 id="upgrade-netdata-to-the-latest-stable-release-1150">Upgrade netdata to the latest stable release (1.15.0)</h3>
|
||||
<p>If you have netdata installed, you can upgrade it by following this tutorial: <a href="./upgrade.netdata.html">Upgrade netdata</a>.</p>
|
||||
<h3 id="fixed-improper-order-of-postfix-smtpd_sender_restriction-rules">Fixed: improper order of Postfix smtpd_sender_restriction rules</h3>
|
||||
<p>iRedMail-0.9.9 and earlier releases didn't configure Postfix to apply custom
|
||||
restriction rule before querying DNS records of sender domain,
|
||||
this way you cannot whitelist some sender mail domains which don't have
|
||||
DNS records (especially your internal mail domains used in LAN). Please follow
|
||||
steps below to fix it.</p>
|
||||
<ul>
|
||||
<li>Open file <code>/etc/postfix/main.cf</code> (Linux/OpenBSD) or
|
||||
<code>/usr/local/etc/postfix/main.cf</code> (FreeBSD), find parameter
|
||||
<code>smtpd_sender_restrictions</code> like below:</li>
|
||||
</ul>
|
||||
<pre><code>smtpd_sender_restrictions =
|
||||
reject_unknown_sender_domain
|
||||
...
|
||||
check_sender_access pcre:...
|
||||
</code></pre>
|
||||
|
||||
<ul>
|
||||
<li>Move the <code>reject_unknown_sender_domain</code> line after <code>check_sender_access</code> line
|
||||
like below:</li>
|
||||
</ul>
|
||||
<pre><code>smtpd_sender_restrictions =
|
||||
...
|
||||
check_sender_access pcre:...
|
||||
reject_unknown_sender_domain
|
||||
</code></pre>
|
||||
|
||||
<ul>
|
||||
<li>Reloading or restarting Postfix service is required.</li>
|
||||
</ul>
|
||||
<h3 id="fail2ban-slightly-loose-filter-rule-for-postfix">Fail2ban: slightly loose filter rule for postfix</h3>
|
||||
<p>We received few reports from clients that Outlook for macOS may trigger some
|
||||
unexpected smtp errors, and caught by the Fail2ban filter rules shipped by
|
||||
|
|
Loading…
Reference in New Issue