From 89b5d7a3f55d982a44210759fcc67bc8bf7a3821 Mon Sep 17 00:00:00 2001 From: Zhang Huangbin Date: Sat, 1 Jul 2017 11:53:19 +0800 Subject: [PATCH] Update doc with new iRedMail & iRedAdmin-Pro versions. --- .../0-iredadmin-pro.restful.api.upcoming.md | 629 ------------------ .../iredadmin/2-iredadmin-pro.restful.api.md | 145 +++- en_US/upgrade/1-iredmail.releases.md | 5 +- en_US/upgrade/2-iredadmin-pro.releases.md | 2 + html/iredadmin-pro.releases.html | 12 + html/iredadmin-pro.restful.api.html | 289 ++++++-- html/iredmail.releases.html | 6 + 7 files changed, 393 insertions(+), 695 deletions(-) delete mode 100644 en_US/iredadmin/0-iredadmin-pro.restful.api.upcoming.md diff --git a/en_US/iredadmin/0-iredadmin-pro.restful.api.upcoming.md b/en_US/iredadmin/0-iredadmin-pro.restful.api.upcoming.md deleted file mode 100644 index 43437d91..00000000 --- a/en_US/iredadmin/0-iredadmin-pro.restful.api.upcoming.md +++ /dev/null @@ -1,629 +0,0 @@ -# iRedAdmin-Pro: RESTful API - -[TOC] - -!!! attention - - * This document is applicable to `iRedAdmin-Pro-SQL-2.7.0` and - `iRedAdmin-Pro-LDAP-2.9.0`. If you're running an old release, please - upgrade iRedAdmin-Pro to the latest release, or check - [document for old releases](./iredadmin-pro.releases.html). - * If you need an API which has not yet been implemented, don't hesitate to - [contact us](../contact.html). - -## Summary - -iRedAdmin-Pro RESTful API will return message in JSON format. - -* If operation succeed: - * For http `POST`, `DELETE`, `PUT` methods, it returns JSON data: `{'_success': true}`. - * For http `GET` method, it returns JSON data: `{'_success': true, '_data': }`. -* If operation failed, it returns JSON data: `{'_success': false, '_msg': ''}`. - -## Enable RESTful API - -!!! note "iRedAdmin-Pro config file location" - - * on RHEL/CentOS, it's `/var/www/iredadmin/settings.py`. - * on Debian/Ubuntu, it's `/opt/www/iredadmin/settings.py` (in recent iRedMail releases) or `/usr/share/apache2/iredadmin/settings.py` (in old iRedMail releases). - * on FreeBSD, it's `/usr/local/www/iredadmin/settings.py`. - * on OpenBSD, it's `/var/www/iredadmin/settings.py`. - -RESTful API is disabled by default, to enable it, please add setting below in -iRedAdmin-Pro config file `settings.py`: - -``` -ENABLE_RESTFUL_API = True -``` - -To restrict API access to few IP addresses, please also add settings below in -iRedAdmin-Pro config file: - -``` -# Enable restriction -RESTRICT_API_ACCESS = True - -# List all IP addresses of allowed client for API access. -RESTFUL_API_CLIENTS = ['172.16.244.1', ...] -``` - -Restarting Apache or uwsgi (if you're running Nginx) is required. - -## Sample code to interact with iRedAdmin-Pro RESTful API - -* [iRedAdmin-Pro RESTful API (interact with `curl`)](./iredadmin-pro.restful.api.curl.html) -* [iRedAdmin-Pro RESTful API (interact with Python)](./iredadmin-pro.restful.api.python.html) - -## APIs - -Notes: - -* Parameter name with a `*` mark means the parameter is required, otherwise is optional. -* replace `` in URL by the real domain name. e.g. `example.com` -* replace `` in URL by the real email address. e.g. `user@domain.com` -* replace `` in URL by an integer number. e.g. `30`, `200` - - - -### Login {: .toggle } - -!!! api "`POST`{: .post } `/api/login`{: .url } `Login with an admin username (full email address) and password`{: .comment } `Parameters`{: .has_params }" - -
- - Parameter | Summary | Sample Usage - --- |--- |--- - `username` | Admin username. Must be a full email address. | `username=admin@mydomain.com` - `password` | (Plain) admin password. | `password=AsTr0ng@` - -
- -### Domain {: .toggle } - -!!! api "`GET`{: .get } `/api/domain/`{: .url } `Get profile of an existing domain`{: .comment }" -!!! api "`POST`{: .post } `/api/domain/`{: .url } `Create a new domain`{: .comment } `Parameters`{: .has_params }" - -
- - Parameter | Summary | Sample Usage - --- |--- |--- - `name` | Short description of this domain name. e.g. company name | `name=Google Inc` - `quota` | Per-domain mailbox quota, in MB. | `quota=2048` - `language` | Default preferred language for newly created mail user | `language=en_US` - `transport` | Transport program | `transport=dovecot` - `defaultQuota` | Default per-user mailbox quota for newly created user, in MB. | `defaultQuota=1024` - `maxUserQuota` | Max mailbox quota of a mail user, in MB. | `maxUserQuota=2048` - `numberOfUsers` | Max number of mail user accounts | `numberOfUsers=20` - `numberOfAliases` | Max number of mail alias accounts | `numberOfAliases=30` - `numberOfLists` | Max number of mailing list accounts (Available in LDAP backends)| `numberOfLists=40` - `senderBcc` | Per-domain sender bcc | `senderBcc=user@domain.com` - `recipientBcc` | Per-domain recipient bcc | `recipientBcc=user@domain.com` - -
- -!!! api "`DELETE`{: .delete } `/api/domain/`{: .url } `Delete an existing domain (all mail messages will NOT be removed)`{: .comment }" -!!! api "`DELETE`{: .delete } `/api/domain//keep_mailbox_days/`{: .url } `Delete domain, and keep all mail messages for given days`{: .comment }" -!!! api "`PUT`{: .put } `/api/domain/`{: .url } `Update profile of an existing domain`{: .comment } `Parameters`{: .has_params }" - -
- - Parameter | Summary | Sample Usage - --- |--- |--- - `name` | Short description of this domain name. e.g. company name | `name=Google Inc` - `accountStatus` | Enable or disable domain. Possible values: `active`, `disabled`. | `accountStatus=active` - `quota` | Mailbox quota for whole domain, in MB. | `quota=2048` - `language` | Default preferred language for newly created mail user | `language=en_US` - `transport` | Transport program | `transport=dovecot` - `minPasswordLength` | Minimal password length | `minPasswordLength=8` - `maxPasswordLength` | Maximum password length | `minPasswordLength=20` - `defaultQuota` | Default per-user mailbox quota for newly created user | `defaultQuota=1024` - `maxUserQuota` | Max mailbox quota of a mail user | `maxUserQuota=2048` - `numberOfUsers` | Max number of mail user accounts | `numberOfUsers=20` - `numberOfAliases` | Max number of mail alias accounts | `numberOfAliases=30` - `senderBcc` | Per-domain sender bcc address | `senderBcc=user@domain.com` - `recipientBcc` | Per-domain recipient bcc address | `recipientBcc=user@domain.com` - `is_backupmx` | Mark domain as Backup MX. Must be used with parameter `primarymx`. Conflicts with parameter `transport`. | `is_backupmx=yes` (or `no`) - `primarymx` | Hostname or IP address of primary MX, smtp port number is optional. Must be used with parameter `is_backupmx`. Conflicts with parameter `transport`. | `primarymx=202.96.134.133`, `primarymx=[mail.iredmail.org]:25` - `catchall` | Per-domain catch-all account (a list of email addresses used to receive emails sent to non-existing addresses under same domain). Multiple addresses must be separated by comma. Set an empty value to disable catch-all support. | `catchall=user@domain.com,user2@domain.com` or `catchall=` (disable catch-all) - `outboundRelay` | Per-domain outbound relay. Set an empty value to disable outbound relay. | `outboundRelay=smtp:[192.168.1.2]:25` or `outboundRelay=` (disable outbound relay) - `enableService` | Enable new services. Multiple services must be separated by comma. Available services are listed below. | `enableService=self-service` - `disableService` | Disable existing services. Multiple services must be separated by comma. Available services are listed below. | `disableService=self-service` - `removeAllServices` | Disable all services (including mail service) | `removeAllServices=` (empty value) - `disableDomainProfile` | disable given domain profiles. Normal admin cannot view and update disabled profiles in domain profile page. Available domain profiles are listed below. | `disableDomainProfile=bcc,relay,aliases` - `enableDomainProfile` | enable given domain profiles. Normal admin can view and update disabled profiles in domain profile page. Available domain profiles are listed below. | `enableDomainProfile=bcc,relay,aliases` - `disableUserProfile` | disable given user profiles. Normal admin cannot view and update disabled profiles in user profile page. Available user profiles are listed below. | `disableUserProfile=bcc,relay,aliases` - `enableUserProfile` | enable given domain profiles. Normal admin can view and update disabled profiles in user profile page. Available user profiles are listed below. | `enableUserProfile=bcc,relay,aliases` - `disableUserPreference` | disable given user preferences in self-service page. Normal mail user cannot view and update disabled preferences. Available user preferences are listed below. | `disableUserPreference=forwarding,wblist` - `enableUserPreference` | disable given user preferences in self-service page. Normal mail user can view and update disabled preferences. Available user preferences are listed below. | `enableUserProfile=forwarding,wblist` - - Available mail services: - - Profile | Comment - --- |--- - self-service | Enable self-service for the mail domain. - mail | All mail services. (LDAP backends only) - domainalias | Alias domain support. (LDAP backends only) - senderbcc | Per-domain sender bcc. (LDAP backends only) - recipientbcc | Per-domain recipient bcc. (LDAP backends only) - - Available domain profiles: - - Profile | Comment - --- |--- - bcc | Per-domain sender bcc and recipient bcc - relay | Per-domain inbound relay and outbound relay - catchall | Per-domain catchall account - aliases | Alias domains - throttle | Per-domain inbound and outbound throttling - greylisting | Per-domain greylisting service - wblist | Per-domain whitelists and blacklists - spampolicy | Per-domain spam policy - backupmx | Backup MX - advanced | Some extra settings - - Available user profiles: - - Profile | Comment - --- |--- - bcc | Per-user sender bcc and recipient bcc - forwarding | Per-user mail forwarding addresses - relay | Per-user inbound relay and outbound relay - aliases | Per-user alias addresses - throttle | Per-user inbound and outbound throttling - greylisting | Per-user greylisting service - wblist | Per-user whitelists and blacklists - spampolicy | Per-user spam policy - - Available user preferences (self-service): - - Profile | Comment - --- |--- - personal_info | Name, time zone, preferred language of web UI - forwarding | Per-user mail forwarding addresses - wblist | Per-user whitelists and blacklists - quarantine | Manage quarantined mails - rcvd_mails | View basic info of received mails, and whitelist/blacklist mail sender directly. - spampolicy | Per-user spam policy - -
- -!!! api "`PUT`{: .put } `/api/domain/admins/`{: .url } `Manage normal domain admins.`{: .comment } `Parameters`{: .has_params }" - -
- - !!! attention - - Normal domain admin can only promote mail users under managed domains - to be a domain admin. - - Parameter | Summary | Sample Usage - --- |--- |--- - `addAdmin` | Add new domain admins. Multiple services must be separated by comma. | `addAdmin=one@domain.com,two@domain.com` - `removeAdmin` | Remove existing domain admins. Multiple services must be separated by comma. | `removeAdmin=one@domain.com,two@domain.com` - `removeAllAdmins` | Remove all existing domain admins. | `removeAllAdmins=` (empty value) - -
- -### Domain Admin {: .toggle } - -!!! attention - - * This is standalone domain admin account, not mail user with admin privileges. - * Only global admin can access these APIs. - -!!! api "`GET`{: .get } `/api/admin/`{: .url } `Get profile of an existing domain admin`{: .comment }" -!!! api "`POST`{: .post } `/api/admin/`{: .url } `Create a new domain admin`{: .comment } `Parameters`{: .has_params }" - -
- - Parameter | Summary | Sample Usage - --- |--- |--- - `name` | Display name | `name=My Admin Name` - `password` | Password| `password=AsTr0ng@` - `accountStatus` | Enable or disable account. Possible values: `active`, `disabled`. | `accountStatus=active` - `language` | Preferred language of iRedAdmin web UI | `language=en_US` - `isGlobalAdmin` | Mark this admin as global admin | `isGlobalAdmin=yes` - - Below parameters are used by normal domain admin (`isGlobalAdmin=no`). With `isGlobalAdmin=yes`, these parameters will be discarded. - - Parameter | Summary | Sample Usage - --- |--- |--- - `maxDomains` | how many mail domains this admin can create | `maxDomains=5` - `maxQuota` | how much mailbox quota this admin can create. Quota is shared by all domains created/managed by this admin. Must be used with parameter `quotaUnit`. Sample: 10TB, 20GB, 100MB.| `maxQuota=2` - `quotaUnit` | Quota unit used by `maxQuota` parameter. Must be used with parameter `maxQuota`. Possible values: TB, GB, MB. | `quotaUnit=TB` - `maxUsers` | how many mail users this admin can create. It's shared by all domains created/managed by this admin. | `maxUsers=100` - `maxAliases` | how many mail aliases this admin can create. It's shared by all domains created/managed by this admin. | `maxAliases=200` - `maxLists` | how many mailing lists this admin can create. It's shared by all domains created/managed by this admin. | `maxLists=300` - -
- -!!! api "`DELETE`{: .delete } `/api/admin/`{: .url } `Delete an existing domain admin`{: .comment }" -!!! api "`PUT`{: .put } `/api/admin/`{: .url } `Update profile of an existing domain admin`{: .comment } `Parameters`{: .has_params }" - -
- - Parameter | Summary | Sample Usage - --- |--- |--- - `name` | Display name | `name=My Admin Name` - `password` | Password| `password=AsTr0ng@` - `accountStatus` | Enable or disable account. Possible values: `active`, `disabled`. | `accountStatus=active` - `language` | Preferred language of iRedAdmin web UI | `language=en_US` - `isGlobalAdmin` | Mark this admin as global admin | `isGlobalAdmin=yes` - - Below parameters are used by normal domain admin (`isGlobalAdmin=no`). With `isGlobalAdmin=yes`, these parameters will be discarded. - - Parameter | Summary | Sample Usage - --- |--- |--- - `maxDomains` | how many mail domains this admin can create | `maxDomains=5` - `maxQuota` | how much mailbox quota this admin can create. Quota is shared by all domains created/managed by this admin. Must be used with parameter `quotaUnit`. Sample: 10TB, 20GB, 100MB.| `maxQuota=2` - `quotaUnit` | Quota unit used by `maxQuota` parameter. Must be used with parameter `maxQuota`. Possible values: TB, GB, MB. | `quotaUnit=TB` - `maxUsers` | how many mail users this admin can create. It's shared by all domains created/managed by this admin. | `maxUsers=100` - `maxAliases` | how many mail aliases this admin can create. It's shared by all domains created/managed by this admin. | `maxAliases=200` - `maxLists` | how many mailing lists this admin can create. It's shared by all domains created/managed by this admin. | `maxLists=300` - -
- -!!! api "`POST`{: .post } `/api/verify_password/admin/`{: .url } `Verify given (plain) password against the one stored in SQL/LDAP`{: .comment } `Parameters`{: .has_params} " - -
- - !!! attention - - Password verification is limited to global domain admin. - - Parameter | Summary | Sample Usage - --- |--- |--- - `password` | Plain password | `password=u0tBF82cIV@vi8Gme` - -
- -### Mail User {: .toggle } - -!!! api "`GET`{: .get } `/api/user/`{: .url } `Get profile of an existing mail user`{: .comment }" -!!! api "`POST`{: .post } `/api/user/`{: .url } `Create a new mail user`{: .comment } `Parameters`{: .has_params }" - -
- - Parameter | Summary | Sample Usage - --- |--- |--- - `name` | Display name | `name=My New Name` - `password` | Password| `password=AsTr0ng@` - `language` | Preferred language of iRedAdmin web UI | `language=en_US` - `quota` | Mailbox quota (in MB) | `quota=1024` - -
- -!!! api "`DELETE`{: .delete } `/api/user/`{: .url } `Delete an existing mail user`{: .comment }" -!!! api "`DELETE`{: .delete } `/api/user//keep_mailbox_days/`{: .url } `Delete an existing mail user, and keep the mailbox for given days. Defaults to 100 years.`{: .comment }" -!!! api "`PUT`{: .put } `/api/user/`{: .url } `Update profile of an existing mail user`{: .comment } `Parameters`{: .has_params} " - -
- - Parameter | Summary | Sample Usage - --- |--- |--- - `name` | Display name | `name=My New Name` - `password` | Password | `password=u0tBF82cIV@vi8Gme` - `quota` | Mailbox quota (in MB) | `quota=1024` - `accountStatus` | Enable or disable user. Possible values: `active`, `disabled`. | `accountStatus=active` - `language` | Preferred language of iRedAdmin web UI | `language=en_US` - `employeeid` | User ID (or Employee Number) | `employeeid=My Employee ID` - `transport` | Transport program | `transport=dovecot` - `forwarding` | Per-user mail forwarding. Multiple addresses must be separated by comma. To save an email copy in mailbox, add original email address as one of forwarding addresses. | `forwarding=user1@domain.com,user2@domain.com,user3@domain.com` - `aliases` | Per-user alias addresses. Multiple addresses must be separated by comma. If empty, all per-user alias addresses owned by this user will be removed. Conflicts with parameter `addAlias` and `removeAlias`. | `aliases=user1@domain.com,user2@domain.com,user3@domain.com` - `addAlias` | Add new per-user alias addresses. Multiple addresses must be separated by comma. Conflicts with parameter `aliases`. | `aliases=user1@domain.com,user2@domain.com,user3@domain.com` - `removeAlias` | Remove existing per-user alias addresses. Multiple addresses must be separated by comma. Conflicts with parameter `aliases`. | `aliases=user1@domain.com,user2@domain.com,user3@domain.com` - -
- -!!! api "`POST`{: .put } `/api/user//change_email/`{: .url } `Change user's email address (from '' to '')`{: .comment }" -!!! api "`PUT`{: .put } `/api/users/`{: .url } `Update profiles of all users under domain`{: .comment } `Parameters`{: .has_params }" - -
- - Parameter | Comment - --- |--- - `accountStatus` | Account status. Possible value is: active, disabled. - `password` | Password - `language` | Preferred language of iRedAdmin web UI - `transport` | Per-user transport - -
- -!!! api "`POST`{: .post } `/api/verify_password/user/`{: .url } `Verify given (plain) password against the one stored in SQL/LDAP`{: .comment } `Parameters`{: .has_params} " - -
- - !!! attention - - Password verification is limited to global domain admin. - - Parameter | Summary | Sample Usage - --- |--- |--- - `password` | Plain password | `password=u0tBF82cIV@vi8Gme` - -
- -### Mailing List {: .toggle } - -!!! attention - - Mailing list is only available in OpenLDAP backend. For SQL backends, - please use mail alias account as mailing list. - -!!! api "`GET`{: .get } `/api/maillist/`{: .url } `Get profile of an existing mailing list account`{: .comment }" -!!! api "`POST`{: .post } `/api/maillist/`{: .url } `Create a new mailing list`{: .comment } `Parameters`{: .has_params }" -
- - Parameter | Summary | Sample Usage - --- |--- |--- - `name` | Display name | `name=My List Name` - `accessPolicy` | Defines who can send email to this mail alias account | `accessPolicy=public` - `members` | Members of mailing list. Multiple members must be separated by comma. | `members=user1@domain.com,user2@domain.com` - -
- -!!! api "`DELETE`{: .delete } `/api/maillist/`{: .url } `Delete an existing mailing list`{: .comment }" -!!! api "`PUT`{: .put } `/api/maillist/`{: .url } `Update profile of an existing mailing list`{: .comment } `Parameters`{: .has_params }" - -
- - Parameter | Summary | Sample Usage - --- |--- |--- - `name` | display name | `name=My List Name` - `accessPolicy` | Defines who can send email to this mailing list | `accessPolicy=public` - `members` | Members of mailing list. Multiple members must be separated by comma. Conflict with parameter `addMember` and `removeMember`. | `members=user1@domain.com,user2@domain.com` - `addMember` | Add new members of mailing list. Multiple members must be separated by comma. Conflict with parameter `members`. | `addMember=user1@domain.com,user2@domain.com` - `removeMember` | Remove existing members of mailing list. Multiple members must be separated by comma. Conflict with parameter `members`. | `removeMember=user1@domain.com,user2@domain.com` - -
- -### Mail Alias {: .toggle } - -!!! api "`GET`{: .get } `/api/alias/`{: .url } `Get profile of an existing mail alias`{: .comment }" -!!! api "`POST`{: .post } `/api/alias/`{: .url } `Create a new mail alias`{: .comment } `Parameters`{: .has_params}" - -
- - Parameter | Summary | Sample Usage - --- |--- |--- - `name` | Display name | `name=My List Name` - `accessPolicy` | Defines who can send email to this mail alias account | `accessPolicy=public` - `members` | Members of mail alias. Multiple members must be separated by comma. | `members=user1@domain.com,user2@domain.com` - - !!! attention - - `accessPolicy` for mail alias account is only available for SQL backends. - -
- -!!! api "`DELETE`{: .delete } `/api/alias/`{: .url } `Delete an existing mail alias`{: .comment }" -!!! api "`PUT`{: .put } `/api/alias/`{: .url } `Update profile of an existing mail alias`{: .comment } `Parameters`{: .has_params }" - -
- - !!! attention - - `accessPolicy` for mail alias account is only available for SQL backends. - - Parameter | Summary | Sample Usage - --- |--- |--- - `name` | Display name | `name=My List Name` - `accessPolicy` | Defines who can send email to this mail alias account | `accessPolicy=public` - `members` | Members of mail alias. Multiple members must be separated by comma. Conflict with parameter `addMember` and `removeMember`. | `members=user1@domain.com,user2@domain.com` - `addMember` | Add new members of mail alias. Multiple members must be separated by comma. Conflict with parameter `members`. | `addMember=user1@domain.com,user2@domain.com` - `removeMember` | Remove existing members of mail alias. Multiple members must be separated by comma. Conflict with parameter `members`. | `removeMember=user1@domain.com,user2@domain.com` - -
- -!!! api "`POST`{: .put } `/api/alias//change_email/`{: .url } `Change email address of alias account (from '' to '')`{: .comment }" - -### Spam Policy {: .toggle } - -!!! api "`GET`{: .get } `/api/spampolicy/global`{: .url } `Get global spam policy`{: .comment }" -!!! api "`GET`{: .get } `/api/spampolicy/domain/`{: .url } `Get per-domain spam policy`{: .comment }" -!!! api "`GET`{: .get } `/api/spampolicy/user/`{: .url } `Get per-user spam policy`{: .comment }" -!!! api "`DELETE`{: .delete } `/api/spampolicy/global`{: .url } `Delete global spam policy`{: .comment }" -!!! api "`DELETE`{: .delete } `/api/spampolicy/domain/`{: .url } `Delete per-domain spam policy`{: .comment }" -!!! api "`DELETE`{: .delete } `/api/spampolicy/user/`{: .url } `Delete per-user spam policy`{: .comment }" -!!! api "`PUT`{: .put } `/api/spampolicy/global`{: .url } `Set global spam policy`{: .comment } `Parameters`{: .has_params_spampolicy }" -!!! api "`PUT`{: .put } `/api/spampolicy/domain/`{: .url } `Set per-domain spam policy`{: .comment } `Parameters`{: .has_params_spampolicy }" -!!! api "`PUT`{: .put } `/api/spampolicy/user/`{: .url } `Set per-user spam policy`{: .comment } `Parameters`{: .has_params_spampolicy }" - -
- - Parameters available for global, per-domain, per-user spam policies. - - > Per-user policy has the highest priority, then per-domain policy, then global policy. - - Parameter | Summary | Sample Usage - --- |--- |--- - `bypass_spam_checks` | Bypass spam checks | `bypass_spam_checks=yes` (default is `no`) - `bypass_virus_checks` | Bypass virus checks | `bypass_virus_checks=yes` (default is `no`) - `bypass_banned_checks` | Bypass banned file type checks | `bypass_banned_checks=yes` (default is `no`) - `bypass_header_checks` | Bypass bad header checks | `bypass_header_checks=yes` (default is `no`) - `quarantine_spam` | Quarantine detected spam into SQL database | `quarantine_spam=yes` (default is `no`) - `quarantine_virus` | Quarantine detected virus into SQL database | `quarantine_virus=no` (default is `yes`) - `quarantine_banned` | Quarantine email with banned file type into SQL database | `quarantine_banned=yes` (default is `no`) - `quarantine_bad_header` | Quarantine email with bad header into SQL database | `quarantine_bad_header=yes` (default is `no`) - `prefix_spam_in_subject` | Prefix string `[SPAM] ` in mail subject if it's spam | `prefix_spam_in_subject=yes` (default is `no`) - `always_insert_x_spam_headers` | Always insert `X-Spam-*` headers in email. It contains spam score and matched SpamAssassin rules. __Don't enable this unless you want to debug spam checking.__ | `always_insert_x_spam_headers=yes` (default is `no`) - `spam_score` | Set a preferred spam score, if scanned email has higher score than this one, it will be marked as spam. | `spam_score=4` (defaults to use system setting defined in Amavisd config file.) - -
- -### Throttling {: .toggle } - -!!! api "`GET`{: .get } `/api/throttle/global/inbound`{: .url } `Get global inbound throttle settings`{: .comment }" -!!! api "`POST`{: .post } `/api/throttle/global/inbound`{: .url } `Set global inbound throttle settings`{: .comment } `Parameters`{: .has_params_throttle }" -!!! api "`GET`{: .get } `/api/throttle/global/outbound`{: .url } `Get global outbound throttle settings`{: .comment }" -!!! api "`POST`{: .post } `/api/throttle/global/outbound`{: .url } `Set global inbound throttle settings`{: .comment } `Parameters`{: .has_params_throttle }" -!!! api "`GET`{: .get } `/api/throttle//inbound`{: .url } `Get domain inbound throttle settings`{: .comment }" -!!! api "`POST`{: .post } `/api/throttle//inbound`{: .url } `Set domain inbound throttle settings`{: .comment } `Parameters`{: .has_params_throttle }" -!!! api "`GET`{: .get } `/api/throttle//outbound`{: .url } `Get domain outbound throttle settings`{: .comment }" -!!! api "`POST`{: .post } `/api/throttle//outbound`{: .url } `Set domain outbound throttle settings`{: .comment } `Parameters`{: .has_params_throttle }" -!!! api "`GET`{: .get } `/api/throttle//inbound`{: .url } `Get user inbound throttle settings`{: .comment }" -!!! api "`POST`{: .post } `/api/throttle//inbound`{: .url } `Set user inbound throttle settings`{: .comment } `Parameters`{: .has_params_throttle }" -!!! api "`GET`{: .get } `/api/throttle//outbound`{: .url } `Get user outbound throttle settings`{: .comment }" -!!! api "`POST`{: .post } `/api/throttle//outbound`{: .url } `Set user outbound throttle settings`{: .comment } `Parameters`{: .has_params_throttle }" - -
- - Parameters available for global, per-domain, per-user throttle settings. - - Parameter | Summary | Sample Usage - --- |--- |--- - `period` * | Period of time, in seconds | `period=3600` (one hour) - `msg_size` | Max size of single email, in bytes | `msg_size=10485760` (10 MB) - `max_msgs` | Number of max inbound emails | `max_msgs=20` (up to 20 messages) - `max_quota` | Cumulative size of inbound or outbound emails, in bytes | `max_quota=1048576000` (1 GB) - -
- -### Greylisting {: .toggle } - -!!! api "`GET`{: .get } `/api/greylisting/all`{: .url } `Get all existing greylisting settings`{: .comment }" -!!! api "`GET`{: .get } `/api/greylisting/global`{: .url } `Get global greylisting setting`{: .comment }" -!!! api "`GET`{: .get } `/api/greylisting/`{: .url } `Get per-domain greylisting setting`{: .comment }" -!!! api "`GET`{: .get } `/api/greylisting/`{: .url } `Get per-user greylisting setting`{: .comment }" -!!! api "`POST`{: .post } `/api/greylisting/global`{: .url } `Set global greylisting setting`{: .comment } `Parameters`{: .has_params_greylisting }" -!!! api "`POST`{: .post } `/api/greylisting/`{: .url } `Set per-domain greylisting setting`{: .comment } `Parameters`{: .has_params_greylisting }" -!!! api "`POST`{: .post } `/api/greylisting/`{: .url } `Set per-user greylisting setting`{: .comment } `Parameters`{: .has_params_greylisting }" - -
- - Parameters available for global, per-domain and per-user greylisting settings. - - Parameter | Summary | Sample Usage - --- |--- |--- - `status` | Explicitly enable or disable greylisting service. | `status=enable` (or `disable`) - -
- -!!! api "`DELETE`{: .delete } `/api/greylisting/global`{: .url } `Delete global greylisting setting`{: .comment }" -!!! api "`DELETE`{: .delete } `/api/greylisting/`{: .url } `Delete per-domain greylisting setting`{: .comment }" -!!! api "`DELETE`{: .delete } `/api/greylisting/`{: .url } `Delete per-user greylisting setting`{: .comment }" -!!! api "`GET`{: .get } `/api/greylisting/global/whitelists`{: .url } `Get globally whitelisted senders for greylisting service`{: .comment }" -!!! api "`GET`{: .get } `/api/greylisting//whitelists`{: .url } `Get whitelisted senders for greylisting service for specified domain`{: .comment }" -!!! api "`GET`{: .get } `/api/greylisting//whitelists`{: .url } `Get whitelisted senders for greylisting service for specified user`{: .comment }" -!!! api "`POST`{: .post } `/api/greylisting/global/whitelists`{: .url } `Whitelist senders for greylisting service globally`{: .comment } `Parameters`{: .has_params_greylisting_whitelists }" -!!! api "`POST`{: .post } `/api/greylisting//whitelists`{: .url } `Whitelist senders for greylisting service for specified domain`{: .comment } `Parameters`{: .has_params_greylisting_whitelists }" -!!! api "`POST`{: .post } `/api/greylisting//whitelists`{: .url } `Whitelist senders for greylisting services for specified user`{: .comment } `Parameters`{: .has_params_greylisting_whitelists }" - -
- - Parameter | Summary | Sample Usage - --- |--- |--- - `senders` | Reset whitelisted senders for global greylisting service to given senders. Multiple addresses must be separated by comma. Conflicts with parameter `addSenders` and `removeSenders`. | `senders=192.168.1.0/24,172.16.10.1,@example.com` - `addSenders` | Whitelist new senders for greylisting service globally. Multiple addresses must be separated by comma. Conflicts with parameter `senders`. | `addSenders=192.168.1.0/24,@example.com` - `removeSenders` | Remove existing whitelisted senders for greylisting service globally. Multiple addresses must be separated by comma. Conflicts with parameter `senders`. | `removeSenders=192.168.1.0/24,@example.com` - - Valid sender address formats: - - Sender Address | Comment - ---|--- - `192.168.2.10` | Single IP address - `192.168.1.0/24` | CIDR network - `user@example.com` | Single email address - `@example.com` | Entire domain - `@.example.com` | Entire domain and all its sub-domains - -
- -!!! api "`POST`{: .post } `/api/greylisting/whitelist_spf_domains`{: .url } `Whitelist IP addresses and networks listed in SPF/MX DNS record of given sender domains for greylisting service globally`{: .comment } `Parameters`{: .has_params }" - -
- - Given sender domain names are not used directly while checking whitelisting, instead, there's a cron job to query SPF and MX DNS records of given sender domains, then whitelist the IP addresses/networks listed in DNS records. - - Multiple domains must be separated by comma. - - Parameter | Summary | Sample Usage - --- |--- |--- - `domains` | Reset whitelisted sender domains for global greylisting service to given sender domains. Conflicts with parameters `addDomains` and `removeDomains`. | `domains=iredmail.org,gmail.com` - `addDomains` | Add new whitelist sender domains for global greylisting service. Conflicts with parameter `domains`. | `addDomains=iredmail.org,gmail.com` - `removeDomains` | Remove existing whitelisted sender domains for global greylisting service. Conflicts with parameter `domains`. | `removeDomains=iredmail.org,gmail.com` - - - -
- -### Export Accounts {: .toggle } - -#### LDIF (LDAP backend only) {: .toggle } - -!!! api "`GET`{: .get } `/api/ldif/domain/`{: .url } `Export domain to LDIF`{: .comment }" -!!! api "`GET`{: .get } `/api/ldif/catchall/`{: .url } `Export per-domain catch-all account to LDIF`{: .comment }" -!!! api "`GET`{: .get } `/api/ldif/admin/`{: .url } `Export (separated) domain admin to LDIF`{: .comment }" -!!! api "`GET`{: .get } `/api/ldif/user/`{: .url } `Export mail user to LDIF`{: .comment }" -!!! api "`GET`{: .get } `/api/ldif/maillist/`{: .url } `Export mailing list account to LDIF`{: .comment }" -!!! api "`GET`{: .get } `/api/ldif/alias/`{: .url } `Export mail alias account to LDIF`{: .comment }" - - - - - -## ChangeLog - -### iRedAdmin-Pro-SQL-2.7.0, iRedAdmin-Pro-LDAP-2.9.0 - -* New: Able to manage global, per-domain and per-user greylisting settings, - whitelist senders, and global whitelisted SPF domains. -* iRedAdmin-Pro-SQL-2.7.0: - * Variable names changed in returned JSON data of user profile (`GET /api/user/`): - * name `forwarding` is replaced by `forwardings`, and it's now a list - object of user forwarding email addresses (was a string, multiple - addresses were separated by comma). - * Variable names in returned JSON data of mail alias profile (`GET /api/alias/`): - * name `islist` is gone. - * name `goto` is replaced by `members`, and it's now a list object of - member email addresses (was a string, multiple addresses were separated - by comma). - * Variable names in returned JSON data of domain profile (`GET /api/domain/`): - * name `catchall` always presents, and it's now a list object of catch-all - email address (was a string, multiple addresses were separated by comma). - * Fixed bugs: - * Cannot set per-user alias addresses while creating new mail user. - * Cannot add or remove per-user alias addresses while updating user profile. - * User mailbox quota was removed while updating user profile. - * Not use default transport setting while creating new domain. - -### iRedAdmin-Pro-SQL-2.6.0, iRedAdmin-Pro-LDAP-2.8.0 - -* Variable names in returned JSON data has been changed to: - `{'_success': ..., '_msg': ...}` (was `{'success': ..., 'msg': ...}`). -* Some variable names have been renamed: - * `cn` -> `name`. - * `mailQuota` -> `quota` - * `preferredLanguage` -> `language` - - - - - - diff --git a/en_US/iredadmin/2-iredadmin-pro.restful.api.md b/en_US/iredadmin/2-iredadmin-pro.restful.api.md index 500e7ce1..43437d91 100644 --- a/en_US/iredadmin/2-iredadmin-pro.restful.api.md +++ b/en_US/iredadmin/2-iredadmin-pro.restful.api.md @@ -4,22 +4,12 @@ !!! attention + * This document is applicable to `iRedAdmin-Pro-SQL-2.7.0` and + `iRedAdmin-Pro-LDAP-2.9.0`. If you're running an old release, please + upgrade iRedAdmin-Pro to the latest release, or check + [document for old releases](./iredadmin-pro.releases.html). * If you need an API which has not yet been implemented, don't hesitate to [contact us](../contact.html). - * This document is applicable to - * iRedAdmin-Pro-SQL-2.5.0, 2.6.0 - * iRedAdmin-Pro-LDAP-2.7.0, 2.8.0 - -## ChangeLog - -### iRedAdmin-Pro-SQL-2.6.0, iRedAdmin-Pro-LDAP-2.8.0 - -* Variable names in returned JSON data has been changed to: - `{'_success': ..., '_msg': ...}` (was `{'success': ..., 'msg': ...}`). -* Some variable names have been renamed: - * `cn` -> `name`. - * `mailQuota` -> `quota` - * `preferredLanguage` -> `language` ## Summary @@ -30,12 +20,15 @@ iRedAdmin-Pro RESTful API will return message in JSON format. * For http `GET` method, it returns JSON data: `{'_success': true, '_data': }`. * If operation failed, it returns JSON data: `{'_success': false, '_msg': ''}`. -## Requirements - -This document is applicable to iRedAdmin-Pro-LDAP-2.7.0 and iRedAdmin-Pro-SQL-2.5.0. - ## Enable RESTful API +!!! note "iRedAdmin-Pro config file location" + + * on RHEL/CentOS, it's `/var/www/iredadmin/settings.py`. + * on Debian/Ubuntu, it's `/opt/www/iredadmin/settings.py` (in recent iRedMail releases) or `/usr/share/apache2/iredadmin/settings.py` (in old iRedMail releases). + * on FreeBSD, it's `/usr/local/www/iredadmin/settings.py`. + * on OpenBSD, it's `/var/www/iredadmin/settings.py`. + RESTful API is disabled by default, to enable it, please add setting below in iRedAdmin-Pro config file `settings.py`: @@ -66,7 +59,6 @@ Restarting Apache or uwsgi (if you're running Nginx) is required. Notes: * Parameter name with a `*` mark means the parameter is required, otherwise is optional. -* __Parameter names are cAsE-sensitive.__ * replace `` in URL by the real domain name. e.g. `example.com` * replace `` in URL by the real email address. e.g. `user@domain.com` * replace `` in URL by an integer number. e.g. `30`, `200` @@ -317,7 +309,7 @@ Notes: `employeeid` | User ID (or Employee Number) | `employeeid=My Employee ID` `transport` | Transport program | `transport=dovecot` `forwarding` | Per-user mail forwarding. Multiple addresses must be separated by comma. To save an email copy in mailbox, add original email address as one of forwarding addresses. | `forwarding=user1@domain.com,user2@domain.com,user3@domain.com` - `aliases` | Per-user alias addresses. Multiple addresses must be separated by comma. If empty, all per-user alias addresses owned by this user will be removed. __If given addresses exist on system before this assignment, they won't be assigned to the user.__ Conflicts with parameter `addAlias` and `removeAlias`. | `aliases=user1@domain.com,user2@domain.com,user3@domain.com` + `aliases` | Per-user alias addresses. Multiple addresses must be separated by comma. If empty, all per-user alias addresses owned by this user will be removed. Conflicts with parameter `addAlias` and `removeAlias`. | `aliases=user1@domain.com,user2@domain.com,user3@domain.com` `addAlias` | Add new per-user alias addresses. Multiple addresses must be separated by comma. Conflicts with parameter `aliases`. | `aliases=user1@domain.com,user2@domain.com,user3@domain.com` `removeAlias` | Remove existing per-user alias addresses. Multiple addresses must be separated by comma. Conflicts with parameter `aliases`. | `aliases=user1@domain.com,user2@domain.com,user3@domain.com` @@ -428,14 +420,14 @@ Notes: ### Spam Policy {: .toggle } !!! api "`GET`{: .get } `/api/spampolicy/global`{: .url } `Get global spam policy`{: .comment }" -!!! api "`PUT`{: .put } `/api/spampolicy/global`{: .url } `Set global spam policy`{: .comment } `Parameters`{: .has_params_spampolicy }" -!!! api "`DELETE`{: .delete } `/api/spampolicy/global`{: .url } `Delete global spam policy`{: .comment }" !!! api "`GET`{: .get } `/api/spampolicy/domain/`{: .url } `Get per-domain spam policy`{: .comment }" -!!! api "`PUT`{: .put } `/api/spampolicy/domain/`{: .url } `Set per-domain spam policy`{: .comment } `Parameters`{: .has_params_spampolicy }" -!!! api "`DELETE`{: .delete } `/api/spampolicy/domain/`{: .url } `Delete per-domain spam policy`{: .comment }" !!! api "`GET`{: .get } `/api/spampolicy/user/`{: .url } `Get per-user spam policy`{: .comment }" -!!! api "`PUT`{: .put } `/api/spampolicy/user/`{: .url } `Set per-user spam policy`{: .comment } `Parameters`{: .has_params_spampolicy }" +!!! api "`DELETE`{: .delete } `/api/spampolicy/global`{: .url } `Delete global spam policy`{: .comment }" +!!! api "`DELETE`{: .delete } `/api/spampolicy/domain/`{: .url } `Delete per-domain spam policy`{: .comment }" !!! api "`DELETE`{: .delete } `/api/spampolicy/user/`{: .url } `Delete per-user spam policy`{: .comment }" +!!! api "`PUT`{: .put } `/api/spampolicy/global`{: .url } `Set global spam policy`{: .comment } `Parameters`{: .has_params_spampolicy }" +!!! api "`PUT`{: .put } `/api/spampolicy/domain/`{: .url } `Set per-domain spam policy`{: .comment } `Parameters`{: .has_params_spampolicy }" +!!! api "`PUT`{: .put } `/api/spampolicy/user/`{: .url } `Set per-user spam policy`{: .comment } `Parameters`{: .has_params_spampolicy }"
@@ -487,6 +479,75 @@ Notes:
+### Greylisting {: .toggle } + +!!! api "`GET`{: .get } `/api/greylisting/all`{: .url } `Get all existing greylisting settings`{: .comment }" +!!! api "`GET`{: .get } `/api/greylisting/global`{: .url } `Get global greylisting setting`{: .comment }" +!!! api "`GET`{: .get } `/api/greylisting/`{: .url } `Get per-domain greylisting setting`{: .comment }" +!!! api "`GET`{: .get } `/api/greylisting/`{: .url } `Get per-user greylisting setting`{: .comment }" +!!! api "`POST`{: .post } `/api/greylisting/global`{: .url } `Set global greylisting setting`{: .comment } `Parameters`{: .has_params_greylisting }" +!!! api "`POST`{: .post } `/api/greylisting/`{: .url } `Set per-domain greylisting setting`{: .comment } `Parameters`{: .has_params_greylisting }" +!!! api "`POST`{: .post } `/api/greylisting/`{: .url } `Set per-user greylisting setting`{: .comment } `Parameters`{: .has_params_greylisting }" + +
+ + Parameters available for global, per-domain and per-user greylisting settings. + + Parameter | Summary | Sample Usage + --- |--- |--- + `status` | Explicitly enable or disable greylisting service. | `status=enable` (or `disable`) + +
+ +!!! api "`DELETE`{: .delete } `/api/greylisting/global`{: .url } `Delete global greylisting setting`{: .comment }" +!!! api "`DELETE`{: .delete } `/api/greylisting/`{: .url } `Delete per-domain greylisting setting`{: .comment }" +!!! api "`DELETE`{: .delete } `/api/greylisting/`{: .url } `Delete per-user greylisting setting`{: .comment }" +!!! api "`GET`{: .get } `/api/greylisting/global/whitelists`{: .url } `Get globally whitelisted senders for greylisting service`{: .comment }" +!!! api "`GET`{: .get } `/api/greylisting//whitelists`{: .url } `Get whitelisted senders for greylisting service for specified domain`{: .comment }" +!!! api "`GET`{: .get } `/api/greylisting//whitelists`{: .url } `Get whitelisted senders for greylisting service for specified user`{: .comment }" +!!! api "`POST`{: .post } `/api/greylisting/global/whitelists`{: .url } `Whitelist senders for greylisting service globally`{: .comment } `Parameters`{: .has_params_greylisting_whitelists }" +!!! api "`POST`{: .post } `/api/greylisting//whitelists`{: .url } `Whitelist senders for greylisting service for specified domain`{: .comment } `Parameters`{: .has_params_greylisting_whitelists }" +!!! api "`POST`{: .post } `/api/greylisting//whitelists`{: .url } `Whitelist senders for greylisting services for specified user`{: .comment } `Parameters`{: .has_params_greylisting_whitelists }" + +
+ + Parameter | Summary | Sample Usage + --- |--- |--- + `senders` | Reset whitelisted senders for global greylisting service to given senders. Multiple addresses must be separated by comma. Conflicts with parameter `addSenders` and `removeSenders`. | `senders=192.168.1.0/24,172.16.10.1,@example.com` + `addSenders` | Whitelist new senders for greylisting service globally. Multiple addresses must be separated by comma. Conflicts with parameter `senders`. | `addSenders=192.168.1.0/24,@example.com` + `removeSenders` | Remove existing whitelisted senders for greylisting service globally. Multiple addresses must be separated by comma. Conflicts with parameter `senders`. | `removeSenders=192.168.1.0/24,@example.com` + + Valid sender address formats: + + Sender Address | Comment + ---|--- + `192.168.2.10` | Single IP address + `192.168.1.0/24` | CIDR network + `user@example.com` | Single email address + `@example.com` | Entire domain + `@.example.com` | Entire domain and all its sub-domains + +
+ +!!! api "`POST`{: .post } `/api/greylisting/whitelist_spf_domains`{: .url } `Whitelist IP addresses and networks listed in SPF/MX DNS record of given sender domains for greylisting service globally`{: .comment } `Parameters`{: .has_params }" + +
+ + Given sender domain names are not used directly while checking whitelisting, instead, there's a cron job to query SPF and MX DNS records of given sender domains, then whitelist the IP addresses/networks listed in DNS records. + + Multiple domains must be separated by comma. + + Parameter | Summary | Sample Usage + --- |--- |--- + `domains` | Reset whitelisted sender domains for global greylisting service to given sender domains. Conflicts with parameters `addDomains` and `removeDomains`. | `domains=iredmail.org,gmail.com` + `addDomains` | Add new whitelist sender domains for global greylisting service. Conflicts with parameter `domains`. | `addDomains=iredmail.org,gmail.com` + `removeDomains` | Remove existing whitelisted sender domains for global greylisting service. Conflicts with parameter `domains`. | `removeDomains=iredmail.org,gmail.com` + + + +
### Export Accounts {: .toggle } @@ -503,7 +564,39 @@ Notes: +## ChangeLog +### iRedAdmin-Pro-SQL-2.7.0, iRedAdmin-Pro-LDAP-2.9.0 + +* New: Able to manage global, per-domain and per-user greylisting settings, + whitelist senders, and global whitelisted SPF domains. +* iRedAdmin-Pro-SQL-2.7.0: + * Variable names changed in returned JSON data of user profile (`GET /api/user/`): + * name `forwarding` is replaced by `forwardings`, and it's now a list + object of user forwarding email addresses (was a string, multiple + addresses were separated by comma). + * Variable names in returned JSON data of mail alias profile (`GET /api/alias/`): + * name `islist` is gone. + * name `goto` is replaced by `members`, and it's now a list object of + member email addresses (was a string, multiple addresses were separated + by comma). + * Variable names in returned JSON data of domain profile (`GET /api/domain/`): + * name `catchall` always presents, and it's now a list object of catch-all + email address (was a string, multiple addresses were separated by comma). + * Fixed bugs: + * Cannot set per-user alias addresses while creating new mail user. + * Cannot add or remove per-user alias addresses while updating user profile. + * User mailbox quota was removed while updating user profile. + * Not use default transport setting while creating new domain. + +### iRedAdmin-Pro-SQL-2.6.0, iRedAdmin-Pro-LDAP-2.8.0 + +* Variable names in returned JSON data has been changed to: + `{'_success': ..., '_msg': ...}` (was `{'success': ..., 'msg': ...}`). +* Some variable names have been renamed: + * `cn` -> `name`. + * `mailQuota` -> `quota` + * `preferredLanguage` -> `language` @@ -529,6 +622,8 @@ $(document).ready(function(){ /* Expand/Collapse specific parameters */ $('.has_params_throttle').bind('click', function(){$('.params_throttle').toggle();}); + $('.has_params_greylisting').bind('click', function(){$('.params_greylisting').toggle();}); + $('.has_params_greylisting_whitelists').bind('click', function(){$('.params_greylisting_whitelists').toggle();}); $('.has_params_spampolicy').bind('click', function(){$('.params_spampolicy').toggle();}); }); diff --git a/en_US/upgrade/1-iredmail.releases.md b/en_US/upgrade/1-iredmail.releases.md index bd83dd7e..8a963371 100644 --- a/en_US/upgrade/1-iredmail.releases.md +++ b/en_US/upgrade/1-iredmail.releases.md @@ -34,9 +34,10 @@ hands dirty, please check [the details](../support.html) and [contact us](../contact.html). -Version | Release Date | Upgrade tutorial | Comment +Version | Release Date | Upgrade tutorial | Comment ---|---|---|--- -[0.9.6](http://www.iredmail.org/forum/topic12262.html) | Jan 23, 2017 | [Upgrade from iRedMail-0.9.5-1](./upgrade.iredmail.0.9.5.1-0.9.6.html) | Contains SQL/LDAP structure changes +[0.9.7](http://www.iredmail.org/forum/topic12262.html) | Jul 1, 2017 | [Upgrade from iRedMail-0.9.6](./upgrade.iredmail.0.9.6-0.9.7.html) | Contains SQL structure change +[0.9.6](http://www.iredmail.org/forum/topic12262.html) | Jan 23, 2017 | [Upgrade from iRedMail-0.9.5-1](./upgrade.iredmail.0.9.5.1-0.9.6.html) | Contains SQL/LDAP structure changes [0.9.5-1](http://www.iredmail.org/forum/topic11049.html) | May 10, 2016 | [Upgrade from iRedMail-0.9.5](./upgrade.iredmail.0.9.5-0.9.5-1.html) | Small bug fix release [0.9.5](http://www.iredmail.org/forum/topic10994.html) | May 3, 2016 | [Upgrade from iRedMail-0.9.4](./upgrade.iredmail.0.9.4-0.9.5.html) | Contains SQL/LDAP structure changes [0.9.4](http://www.iredmail.org/forum/topic10512.html) | Jan 25, 2016 | [Upgrade from iRedMail-0.9.3](./upgrade.iredmail.0.9.3-0.9.4.html) diff --git a/en_US/upgrade/2-iredadmin-pro.releases.md b/en_US/upgrade/2-iredadmin-pro.releases.md index ac43167e..2af32742 100644 --- a/en_US/upgrade/2-iredadmin-pro.releases.md +++ b/en_US/upgrade/2-iredadmin-pro.releases.md @@ -22,6 +22,7 @@ this tutorial with just one shell command: Version | Release Date | Comment | Extra ---|---|---|--- +[2.9.0](http://www.iredmail.org/forum/) | Jul 1, 2017 | Bug fix release. | [RESTful API document](./iredadmin-pro.restful.api.html) [2.8.0](http://www.iredmail.org/forum/topic12499.html) | Mar 21, 2017 | Bug fix release. | [RESTful API document](./iredadmin-pro.restful.api-20170123.html) [2.7.0](http://www.iredmail.org/forum/topic12266.html) | Jan 23, 2017 | Improved RESTful API support. | [RESTful API document](./iredadmin-pro.restful.api-20170123.html) [2.6.1](http://www.iredmail.org/forum/topic11809.html) | Oct 10, 2016 | Fixes an __CRITICAL SECURITY ISSUE__ on FreeBSD and OpenBSD. | [RESTful API document](./iredadmin-pro.restful.api-20170123.html) @@ -54,6 +55,7 @@ Version | Release Date | Comment | Extra Version | Release Date | Comment | RESTful API Document ---|---|---|--- +[2.7.0](http://www.iredmail.org/forum/) | Jul 1, 2017 | Bug fix release. | [RESTful API document](./iredadmin-pro.restful.api.html) [2.6.0](http://www.iredmail.org/forum/topic12498.html) | Mar 21, 2017 | Bug fix release. | [RESTful API document](./iredadmin-pro.restful.api-20170123.html) [2.5.0](http://www.iredmail.org/forum/topic12267.html) | Jan 23, 2017 | Improved RESTful API support. | [RESTful API document](./iredadmin-pro.restful.api-20170123.html) [2.4.1](http://www.iredmail.org/forum/topic11809.html) | Oct 10, 2016 | Fixes an __CRITICAL SECURITY ISSUE__ on FreeBSD and OpenBSD. | [RESTful API document](./iredadmin-pro.restful.api-20170123.html) diff --git a/html/iredadmin-pro.releases.html b/html/iredadmin-pro.releases.html index 297021d8..b3a53c54 100644 --- a/html/iredadmin-pro.releases.html +++ b/html/iredadmin-pro.releases.html @@ -56,6 +56,12 @@ this tutorial with just one shell command:

+2.9.0 +Jul 1, 2017 +Bug fix release. +RESTful API document + + 2.8.0 Mar 21, 2017 Bug fix release. @@ -231,6 +237,12 @@ this tutorial with just one shell command:

+2.7.0 +Jul 1, 2017 +Bug fix release. +RESTful API document + + 2.6.0 Mar 21, 2017 Bug fix release. diff --git a/html/iredadmin-pro.restful.api.html b/html/iredadmin-pro.restful.api.html index 2b5839ee..2afc1fad 100644 --- a/html/iredadmin-pro.restful.api.html +++ b/html/iredadmin-pro.restful.api.html @@ -19,12 +19,7 @@
@@ -49,27 +50,14 @@

Attention

    +
  • This document is applicable to iRedAdmin-Pro-SQL-2.7.0 and + iRedAdmin-Pro-LDAP-2.9.0. If you're running an old release, please + upgrade iRedAdmin-Pro to the latest release, or check + document for old releases.
  • If you need an API which has not yet been implemented, don't hesitate to contact us.
  • -
  • This document is applicable to
      -
    • iRedAdmin-Pro-SQL-2.5.0, 2.6.0
    • -
    • iRedAdmin-Pro-LDAP-2.7.0, 2.8.0
    • -
    -
-

ChangeLog

-

iRedAdmin-Pro-SQL-2.6.0, iRedAdmin-Pro-LDAP-2.8.0

-
    -
  • Variable names in returned JSON data has been changed to: - {'_success': ..., '_msg': ...} (was {'success': ..., 'msg': ...}).
  • -
  • Some variable names have been renamed:
      -
    • cn -> name.
    • -
    • mailQuota -> quota
    • -
    • preferredLanguage -> language
    • -
    -
  • -

Summary

iRedAdmin-Pro RESTful API will return message in JSON format.

    @@ -80,9 +68,16 @@
  • If operation failed, it returns JSON data: {'_success': false, '_msg': '<error_reason>'}.
-

Requirements

-

This document is applicable to iRedAdmin-Pro-LDAP-2.7.0 and iRedAdmin-Pro-SQL-2.5.0.

Enable RESTful API

+
+

iRedAdmin-Pro config file location

+
    +
  • on RHEL/CentOS, it's /var/www/iredadmin/settings.py.
  • +
  • on Debian/Ubuntu, it's /opt/www/iredadmin/settings.py (in recent iRedMail releases) or /usr/share/apache2/iredadmin/settings.py (in old iRedMail releases).
  • +
  • on FreeBSD, it's /usr/local/www/iredadmin/settings.py.
  • +
  • on OpenBSD, it's /var/www/iredadmin/settings.py.
  • +
+

RESTful API is disabled by default, to enable it, please add setting below in iRedAdmin-Pro config file settings.py:

ENABLE_RESTFUL_API = True
@@ -107,7 +102,6 @@ RESTFUL_API_CLIENTS = ['172.16.244.1', ...]
 

Notes:

  • Parameter name with a * mark means the parameter is required, otherwise is optional.
  • -
  • Parameter names are cAsE-sensitive.
  • replace <domain> in URL by the real domain name. e.g. example.com
  • replace <mail> in URL by the real email address. e.g. user@domain.com
  • replace <number> in URL by an integer number. e.g. 30, 200
  • @@ -885,7 +879,7 @@ to be a domain admin.

    aliases -Per-user alias addresses. Multiple addresses must be separated by comma. If empty, all per-user alias addresses owned by this user will be removed. If given addresses exist on system before this assignment, they won't be assigned to the user. Conflicts with parameter addAlias and removeAlias. +Per-user alias addresses. Multiple addresses must be separated by comma. If empty, all per-user alias addresses owned by this user will be removed. Conflicts with parameter addAlias and removeAlias. aliases=user1@domain.com,user2@domain.com,user3@domain.com @@ -1153,28 +1147,28 @@ please use mail alias account as mailing list.

    GET /api/spampolicy/global Get global spam policy

-

PUT /api/spampolicy/global Set global spam policy Parameters

-
-
-

DELETE /api/spampolicy/global Delete global spam policy

-
-

GET /api/spampolicy/domain/<domain> Get per-domain spam policy

-

PUT /api/spampolicy/domain/<domain> Set per-domain spam policy Parameters

-
-
-

DELETE /api/spampolicy/domain/<domain> Delete per-domain spam policy

-
-

GET /api/spampolicy/user/<mail> Get per-user spam policy

-

PUT /api/spampolicy/user/<mail> Set per-user spam policy Parameters

+

DELETE /api/spampolicy/global Delete global spam policy

+
+
+

DELETE /api/spampolicy/domain/<domain> Delete per-domain spam policy

DELETE /api/spampolicy/user/<mail> Delete per-user spam policy

+
+
+

PUT /api/spampolicy/global Set global spam policy Parameters

+
+
+

PUT /api/spampolicy/domain/<domain> Set per-domain spam policy Parameters

+
+
+

PUT /api/spampolicy/user/<mail> Set per-user spam policy Parameters

Parameters available for global, per-domain, per-user spam policies.

@@ -1322,6 +1316,176 @@ please use mail alias account as mailing list.

+
+

Greylisting

+
+

GET /api/greylisting/all Get all existing greylisting settings

+
+
+

GET /api/greylisting/global Get global greylisting setting

+
+
+

GET /api/greylisting/<domain> Get per-domain greylisting setting

+
+
+

GET /api/greylisting/<mail> Get per-user greylisting setting

+
+
+

POST /api/greylisting/global Set global greylisting setting Parameters

+
+
+

POST /api/greylisting/<domain> Set per-domain greylisting setting Parameters

+
+
+

POST /api/greylisting/<mail> Set per-user greylisting setting Parameters

+
+ +

Parameters available for global, per-domain and per-user greylisting settings.

+ + + + + + + + + + + + + + + +
ParameterSummarySample Usage
statusExplicitly enable or disable greylisting service.status=enable (or disable)
+
+ +
+
+

DELETE /api/greylisting/global Delete global greylisting setting

+
+
+

DELETE /api/greylisting/<domain> Delete per-domain greylisting setting

+
+
+

DELETE /api/greylisting/<mail> Delete per-user greylisting setting

+
+
+

GET /api/greylisting/global/whitelists Get globally whitelisted senders for greylisting service

+
+
+

GET /api/greylisting/<domain>/whitelists Get whitelisted senders for greylisting service for specified domain

+
+
+

GET /api/greylisting/<mail>/whitelists Get whitelisted senders for greylisting service for specified user

+
+
+

POST /api/greylisting/global/whitelists Whitelist senders for greylisting service globally Parameters

+
+
+

POST /api/greylisting/<domain>/whitelists Whitelist senders for greylisting service for specified domain Parameters

+
+
+

POST /api/greylisting/<mail>/whitelists Whitelist senders for greylisting services for specified user Parameters

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterSummarySample Usage
sendersReset whitelisted senders for global greylisting service to given senders. Multiple addresses must be separated by comma. Conflicts with parameter addSenders and removeSenders.senders=192.168.1.0/24,172.16.10.1,@example.com
addSendersWhitelist new senders for greylisting service globally. Multiple addresses must be separated by comma. Conflicts with parameter senders.addSenders=192.168.1.0/24,@example.com
removeSendersRemove existing whitelisted senders for greylisting service globally. Multiple addresses must be separated by comma. Conflicts with parameter senders.removeSenders=192.168.1.0/24,@example.com
+

Valid sender address formats:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Sender AddressComment
192.168.2.10Single IP address
192.168.1.0/24CIDR network
user@example.comSingle email address
@example.comEntire domain
@.example.comEntire domain and all its sub-domains
+
+ +
+
+

POST /api/greylisting/whitelist_spf_domains Whitelist IP addresses and networks listed in SPF/MX DNS record of given sender domains for greylisting service globally Parameters

+
+ +

Given sender domain names are not used directly while checking whitelisting, instead, there's a cron job to query SPF and MX DNS records of given sender domains, then whitelist the IP addresses/networks listed in DNS records.

+

Multiple domains must be separated by comma.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterSummarySample Usage
domainsReset whitelisted sender domains for global greylisting service to given sender domains. Conflicts with parameters addDomains and removeDomains.domains=iredmail.org,gmail.com
addDomainsAdd new whitelist sender domains for global greylisting service. Conflicts with parameter domains.addDomains=iredmail.org,gmail.com
removeDomainsRemove existing whitelisted sender domains for global greylisting service. Conflicts with parameter domains.removeDomains=iredmail.org,gmail.com
+ + +
+

Export Accounts

LDIF (LDAP backend only)

@@ -1343,6 +1507,51 @@ please use mail alias account as mailing list.

GET /api/ldif/alias/<mail> Export mail alias account to LDIF

+

ChangeLog

+

iRedAdmin-Pro-SQL-2.7.0, iRedAdmin-Pro-LDAP-2.9.0

+
    +
  • New: Able to manage global, per-domain and per-user greylisting settings, + whitelist senders, and global whitelisted SPF domains.
  • +
  • iRedAdmin-Pro-SQL-2.7.0:
      +
    • Variable names changed in returned JSON data of user profile (GET /api/user/<mail>):
        +
      • name forwarding is replaced by forwardings, and it's now a list + object of user forwarding email addresses (was a string, multiple + addresses were separated by comma).
      • +
      +
    • +
    • Variable names in returned JSON data of mail alias profile (GET /api/alias/<mail>):
        +
      • name islist is gone.
      • +
      • name goto is replaced by members, and it's now a list object of + member email addresses (was a string, multiple addresses were separated + by comma).
      • +
      +
    • +
    • Variable names in returned JSON data of domain profile (GET /api/domain/<domain>):
        +
      • name catchall always presents, and it's now a list object of catch-all + email address (was a string, multiple addresses were separated by comma).
      • +
      +
    • +
    • Fixed bugs:
        +
      • Cannot set per-user alias addresses while creating new mail user.
      • +
      • Cannot add or remove per-user alias addresses while updating user profile.
      • +
      • User mailbox quota was removed while updating user profile.
      • +
      • Not use default transport setting while creating new domain.
      • +
      +
    • +
    +
  • +
+

iRedAdmin-Pro-SQL-2.6.0, iRedAdmin-Pro-LDAP-2.8.0

+
    +
  • Variable names in returned JSON data has been changed to: + {'_success': ..., '_msg': ...} (was {'success': ..., 'msg': ...}).
  • +
  • Some variable names have been renamed:
      +
    • cn -> name.
    • +
    • mailQuota -> quota
    • +
    • preferredLanguage -> language
    • +
    +
  • +