diff --git a/en_US/iredadmin/0-iredadmin-pro.restful.api-20190428.md b/en_US/iredadmin/0-iredadmin-pro.restful.api-20190428.md new file mode 100644 index 00000000..5392108c --- /dev/null +++ b/en_US/iredadmin/0-iredadmin-pro.restful.api-20190428.md @@ -0,0 +1,839 @@ +# iRedAdmin-Pro: RESTful API + +[TOC] + +!!! attention + + * This document is applicable to `iRedAdmin-Pro-SQL-3.3` and + `iRedAdmin-Pro-LDAP-3.5`. 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](https://www.iredmail.org/contact.html). + * [Release Notes of all iRedAdmin-Pro releases](./iredadmin-pro.releases.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 + +RESTful API is disabled by default, to enable it, please add setting below in +iRedAdmin-Pro config file `settings.py`: + +``` +ENABLE_RESTFUL_API = True +``` + +Restarting Apache or uwsgi (if you're running Nginx) is required after changed +iRedAdmin config file. + +!!! note "iRedAdmin-Pro config file location" + + * on RHEL/CentOS, it's `/opt/www/iredadmin/settings.py` (in recent iRedMail + releases) or `/var/www/iredadmin/settings.py` (in old iRedMail releases). + * 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 `/opt/www/iredadmin/settings.py` (in recent iRedMail + releases) or `/var/www/iredadmin/settings.py` (in old iRedMail releases). + +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', ...] +``` + +## 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/domains`{: .url } `Get profiles of all managed mail domains`{: .comment } `Parameters`{: .has_params }" + +
+ + Parameter | Summary | Sample Usage + --- |--- |--- + `name_only` | Return only mail domain names | `name_only=yes` + `disabled_only` | Return only disabled mail domains | `disabled_only=yes` + +
+ +!!! 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. Defaults to 0 day which means keeping forever.`{: .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) + `addAliasDomain` | Add new alias domains. Multiple services must be separated by comma. | `addAliasDomain=alias1.com,alias2.com` + `removeAliasDomain` | Remove existing alias domains. Multiple services must be separated by comma. | `removeAllServices=alias1.com,alias2.com` + `aliasDomains` | Reset all alias domains. If empty, all existing alias domains will be removed. Conflicts with parameter `addAliasDomain` and `removeAliasDomain`. | `aliasDomains=alias1.com,alias2.com` + `addService` | Enable new services. Multiple services must be separated by comma. Available services are listed below. | `addService=self-service` + `removeService` | Disable existing services. Multiple services must be separated by comma. Available services are listed below. | `removeService=self-service` + `services` | Reset all services. If empty, all existing services will be removed. | `services=mail,self-service` + `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` + `disableViewingMailLog` | Disallow this admin to view log of inbound/outbound mails. | `disableViewingMailLog=yes` (or `no`) + `disableManagingQuarantinedMails` | Disallow this admin to manage quarantined mails. | `disableManagingQuarantinedMails=yes` (or `no`) + +
+ +!!! 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` + `disableViewingMailLog` | Disallow this admin to view log of inbound/outbound mails. | `disableViewingMailLog=yes` (or `no`) + `disableManagingQuarantinedMails` | Disallow this admin to manage quarantined mails. | `disableManagingQuarantinedMails=yes` (or `no`) + +
+ +!!! 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` + `mailboxFormat` | Mailbox format. e.g. `maildir`, `mdbox`. Defaults to `maildir` if not present. For more details, please read Dovecot document: . __WARNING__: Changing mailbox format does not migrate the mailbox on file system automatically, you have to migrate it manually. New email will be stored in new mailbox format immediately. | `mailboxFormat=mdbox` + `mailboxFolder` | Mailbox folder name (case sensitive) which will be appended to user's home path. Defaults to `Maildir`. It's useful if you need to migrate to different mailbox folder. __WARNING__: New email will be stored in new mailbox folder immediately. | `mailboxFolder=Maildir` + `maildir` | Absolute path of the mailbox. All characters will be converted to lower cases. | `maildir=/var/vmail/vmail1/example.com/username` + +
+ +!!! 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 0 day which means keeping forever.`{: .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=Michael Jordon` + `gn` | Given name | `gn=Jordon` + `sn` | Surname | `sn=Jeffery` + `password` | Set user password to the given one. | `password=u0tBF82cIV@vi8Gme` + `password_hash` | Set user password to the given hashed password. Conflict with parameter `password`. | `password={SSHA}qjmhvlsofWDu/AvVhOJX1cU/CvYKLYlwlM5bHw==` + `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` + `isGlobalAdmin` | Promote user to be a global admin. Possible values: `yes`, `no` | `isGlobalAdmin=yes` + `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` + `senderBcc` | Per-user BCC for outbound emails. Only one email address is allowed. Parameter with empty value will remove existing sender bcc address. | `senderBcc=user1@domain.com` or
`senderBcc=` (remove existing bcc address) + `recipientBcc` | Per-user BCC for inbound emails. Only one email address is allowed. Parameter with empty value will remove existing recipient bcc address. | `recipientBcc=user1@domain.com` or
`recipientBcc=` (remove existing bcc address) + `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`. | `addAlias=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`. | `removeAlias=user1@domain.com,user2@domain.com,user3@domain.com` + `services` | Reset per-user enabled mail services to given values. Conflicts with parameter `addService` and `removeService`. See additional notes below. | `services=mail,smtp,pop3,imap` + `addService` | Add new per-user enabled mail service(s). Multiple values must be separated by comma. Conflicts with parameter `services`. See additional notes below. | `addService=vpn,owncloud` + `removeService` | Add new per-user enabled mail service(s). Multiple values must be separated by comma. Conflicts with parameter `services`. See additional notes below. | `removeService=forward,senderbcc` + `mailboxFormat` | Mailbox format. e.g. `maildir`, `mdbox`. Defaults to `maildir` if not present. For more details, please read Dovecot document: . __WARNING__: Changing mailbox format does not migrate the mailbox on file system automatically, you have to migrate it manually. New email will be stored in new mailbox format immediately. | `mailboxFormat=mdbox` + `mailboxFolder` | Mailbox folder name (case sensitive) which will be appended to user's home path. Defaults to `Maildir`. It's useful if you need to migrate to different mailbox folder. __WARNING__: New email will be stored in new mailbox folder immediately. | `mailboxFolder=Maildir` + `maildir` | Absolute path of the mailbox. All characters will be converted to lower cases. | `maildir=/var/vmail/vmail1/example.com/username` + + !!! attention + + Notes about `services`, `addService`, `removeService` parameters: + + * Available service names in iRedMail: + * smtp + * smtpsecured (SMTP over TLS or SSL) + * smtptls (SMTP over TLS) + * pop3 + * pop3secured (POP3 over TLS or SSL) + * pop3tls (POP3 over TLS) + * imap + * imapsecured (IMAP over TLS or SSL) + * imaptls (IMAP over TLS) + * managesieve + * managesievesecured (Managesieve over TLS or SSL) + * managesievetls (Managesieve over TLS) + * deliver (deliver received email to local mailbox) + * sogo (SOGo groupware) + + * For LDAP backends, you're free to add custom service names, because + the LDAP attribute name used to store service names supports storing + multiple values and we don't need to change LDAP schema. + + * For SQL backends, column `enable` in SQL table + `vmail.mailbox` must be present, if not, specified service name will + be silently ignored. + +
+ +!!! api "`POST`{: .post } `/api/user//change_email/`{: .url } `Change user's email address (from '' to '')`{: .comment }" +!!! api "`GET`{: .get } `/api/users/`{: .url } `Get user profiles under given domain`{: .comment } `Parameters`{: .has_params }" + +
+ + Parameter | Default Value | Comment | Sample Usage + --- |--- |--- |--- + `email_only` | `no` | Return a list of mail users' email addresses instead of detailed profiles. | `email_only=yes` + `disabled_only` | `no` | Return only disabled mail users. | `disabled_only=yes` + +
+ +!!! api "`PUT`{: .put } `/api/users/`{: .url } `Update profiles of all users under given 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` + +
+ +### [NEW] Subscribable Mailing List {: .toggle } + +!!! attention + + * Subscribable mailing list requires iRedMail-0.9.8 and later releases, + it's implemented with [`mlmmj`](http://mlmmj.org) mailing list manager. + * It's available for both SQL and LDAP backends. + +!!! api "`GET`{: .get } `/api/mls/`{: .url } `Get profile of all mailing lists under given domain`{: .comment } `Parameters`{: .has_params}" + +
+ + Parameter | Sample Usage | Default Value | Comment + --- |--- |---|--- + `email_only` | `email_only=yes` | `no` | Return a list of mailing list email addresses instead of detailed profile. + +
+ +!!! api "`GET`{: .get } `/api/ml/`{: .url } `Get profile of an existing mailing list account`{: .comment } `Parameters`{: .has_params}" + +
+ + Parameter | Sample Usage | Default Value | Comment + --- |--- |---|--- + `with_subscribers` | `with_subscribers=yes` | `no` | Get subscribers of mailing list. + +
+ +!!! api "`POST`{: .post } `/api/ml/`{: .url } `Create a new mailing list`{: .comment } `Parameters`{: .has_params }" + +
+ + Parameter | Sample Usage | Default Value | Comment + --- |--- |---|--- + `name` | `name=Sales Team` | | Display name of the mailing list. + `accountStatus` | `accountStatus=active` | | Enable or disable account. Possible values: `active`, `disabled`. + `maxMailSize` | `maxMailSize=1048576` (1M) | | Max message size (in bytes). + `accessPolicy` | `accessPolicy=membersonly` | | Defines who can send email to this mailing list. Possible values: `public`, `domain`, `subdomain`, `membersonly`, `moderatorsonly`. + `is_newsletter` | `is_newsletter=yes` | `no` | Mark this mailing list as a newsletter, to enable subscription/unsubscription from web site. + `newsletter_description` | `newsletter_description=short description text` | | The short description text displayed on newsletter subscription page. + `close_list` | `close_list=yes` | `no` | If set to `yes`, subscription and unsubscription via mail is disabled. + `only_moderator_can_post` | `only_moderator_can_post=yes` | `no` | If set to `yes`, only moderators are allowed to post to it. The check is made against the `From:` header. + `only_subscriber_can_post` | `only_subscriber_can_post=yes` | `yes` | If set to `yes`, only subscribed members are allowed to post to it. The check is made against the `From:` header. + `disable_subscription` | `disable_subscription=yes` | `no` | If set to `yes`, subscription is disabled, but unsubscription is still possible. + `disable_subscription_confirm` | `disable_subscription_confirm=yes` | | If set to `yes`, mlmmj won't send mail to subscriber to ask for confirmation to subscribe to the list. __WARNING__: This should in principle never ever be used, but there are times on local lists etc. where this is useful. HANDLE WITH CARE! + `disable_digest_subscription` | `disable_digest_subscription=yes` | | If set to `yes`, subscription to the digest version of the mailing list is disabled. Useful if you don't want to allow digests and notify users about it. + `disable_digest_text` | `disable_digest_text=yes` | | If set to `yes`, digest mails won't have a text part with a thread summary. + `disable_nomail_subscription` | `disable_nomail_subscription=yes` | | If set to `yes`, subscription to the 'nomail' version of the mailing list is disabled. Useful if you don't want to allow 'nomail' and notify users about it. + `moderated` | `moderated=yes` | `no` | If set to `yes`. Parameter `owner` __or__ `moderators` is required to specify the moderators. Note: `moderators` has higher priority (means only addresses specified by `moderators` are act as moderators). + `moderate_non_subscriber_post` | `moderate_non_subscriber_post=no` | `no` | If set to `yes`, all postings from people who are not allowed to post to the list will be moderated. Default (set to `no`) is denied. + `disable_retrieving_old_posts` | `disable_retrieving_old_posts=yes` | | If set to `yes`, retrieving old posts by sending email to address `+get-N@` is disabled. + `only_subscriber_can_get_old_posts` | `only_subscriber_can_get_old_posts=no` | `yes` | If set to `yes`, only subscribers can retrieve old posts by sending email to `LISTNAME+get-N@` + `disable_retrieving_subscribers` | `disable_retrieving_subscribers=yes` | `yes` | If set to `yes`, (owner) retrieving subscribers by sending email to `LISTNAME+list@` is disabled. Note: only owner can send to such address. + `disable_send_copy_to_sender` | `disable_send_copy_to_sender=yes` | `yes` | If set to `yes`, senders won't receive copies of their own posts. + `notify_owner_when_sub_unsub` | `notify_owner_when_sub_unsub=no` | `no` | Notify the owner(s) when someone sub/unsubscribing to a mailing list. + `notify_sender_when_moderated` | `notify_sender_when_moderated=no` | `no` | Notify sender (based on the envelope from) when their post is being moderated. + `disable_archive` | `disable_archive=yes` | `no` | If set to `yes`, emails won't be saved in the archive but simply deleted. + `moderate_subscription` | `moderate_subscription=yes` | `no` | If set to `yes`, subscription will be moderated by owner(s) or moderators specified by `subscription_moderators`. Moderators specified by `subscription_moderators` has higher priority. If set to `no`, subscription is not moderated, also, all moderators which were specified by `subscription_moderators` will be removed. + `extra_addresses` | `extra_addresses=extra1@domain.com,extra2@domain.com` | | Define extra addresses of the mailing list. + `subscription_moderators` | `subscription_moderators=,,` | | Specify subscription moderators. Note: if `subscription_moderators` is given, `moderate_subscription` will be set to `yes` automatically. If no valid moderators are given, subscription will be moderated by owner(s). + `owner` | `owner=,,` | | Define owner(s) of the mailing list. Owners will get mails sent to `+owner@`. + `moderators` | `moderators=,` | | Specify moderators of the mailing list. Set to empty value will remove all existing moderators. + `max_message_size` | `max_message_size=10240` | | Specify max mail message size in __bytes__. + `subject_prefix` | `subject_prefix=[prefix text]` | | Add a prefix in the `Subject:` line of mails sent to the list. Set to empty value to remove it. + `custom_headers` | `custom_headers=:\n:` | | Add custom headers to every mail coming through. Multiple headers must be separated by `\n`. Set empty value to remove it. Note: mlmmjadmin will always add `X-Mailing-List: ` and `Reply-To: ` for each mailing list account. + `remove_headers` | `remove_headers=Message-ID,Received` | | Remove given mail headers. NOTE: either `header:` or `header` (without `:`) is ok. Note: mlmmjadmin will always remove `DKIM-Signature:` and `Authentication-Results:`. + `name` | `name=Short description of list` | | Set a short description of the mailing list account. + `footer_text` | `footer_text=footer in plain text` | | Append footer (in plain text format) to every email sent to the list. + `footer_html` | `footer_text=

footer in html

` | | Append footer (in html format) to every email sent to the list. + + Parameters used to add subscribers: + + Parameter | Sample Usage | Default Value | Comment + --- |--- |---|--- + `subscribers` | `subscribers=,,,...` | | Subscribe users to mailing list. Multiple subscribers must be separated by comma. + `require_confirm` | `require_confirm=no` | `yes` | Send email to subscribers and let subscribers confirm the subscription. + `subscription` | `subscription=normal` | `normal` | Subscribe to different subscription. Valid values are: `normal`, `digest`, `nomail`. + +
+ +!!! api "`DELETE`{: .delete } `/api/ml/`{: .url } `Delete an existing mailing list`{: .comment } `Parameters`{: .has_params }" + +
+ + Parameter | Summary | Sample Usage + --- |--- |--- + `keep_archive` | Archive account settings and messages before deleting the mailing list. | `keep_archive=no` + +
+ +!!! api "`PUT`{: .put } `/api/ml/`{: .url } `Update profile of an existing mailing list`{: .comment } `Parameters`{: .has_params }" + +
+ + Parameter | Sample Usage | Default Value | Comment + --- |--- |---|--- + `name` | `name=Sales Team` | | Display name of the mailing list. + `accountStatus` | `accountStatus=active` | | Enable or disable account. Possible values: `active`, `disabled`. + `maxMailSize` | `maxMailSize=1048576` (1M) | | Max message size (in bytes). + `accessPolicy` | `accessPolicy=membersonly` | | Defines who can send email to this mailing list. Possible values: `public`, `domain`, `subdomain`, `membersonly`, `moderatorsonly`. + `is_newsletter` | `is_newsletter=yes` | `no` | Mark this mailing list as a newsletter, to enable subscription/unsubscription from web site. + `newsletter_description` | `newsletter_description=short description text` | | The short description text displayed on newsletter subscription page. + `close_list` | `close_list=yes` | `no` | If set to `yes`, subscription and unsubscription via mail is disabled. + `only_moderator_can_post` | `only_moderator_can_post=yes` | `no` | If set to `yes`, only moderators are allowed to post to it. The check is made against the `From:` header. + `only_subscriber_can_post` | `only_subscriber_can_post=yes` | `yes` | If set to `yes`, only subscribed members are allowed to post to it. The check is made against the `From:` header. + `disable_subscription` | `disable_subscription=yes` | `no` | If set to `yes`, subscription is disabled, but unsubscription is still possible. + `disable_subscription_confirm` | `disable_subscription_confirm=yes` | | If set to `yes`, mlmmj won't send mail to subscriber to ask for confirmation to subscribe to the list. __WARNING__: This should in principle never ever be used, but there are times on local lists etc. where this is useful. HANDLE WITH CARE! + `disable_digest_subscription` | `disable_digest_subscription=yes` | | If set to `yes`, subscription to the digest version of the mailing list is disabled. Useful if you don't want to allow digests and notify users about it. + `disable_digest_text` | `disable_digest_text=yes` | | If set to `yes`, digest mails won't have a text part with a thread summary. + `disable_nomail_subscription` | `disable_nomail_subscription=yes` | | If set to `yes`, subscription to the 'nomail' version of the mailing list is disabled. Useful if you don't want to allow 'nomail' and notify users about it. + `moderated` | `moderated=yes` | `no` | If set to `yes`. Parameter `owner` __or__ `moderators` is required to specify the moderators. Note: `moderators` has higher priority (means only addresses specified by `moderators` are act as moderators). + `moderate_non_subscriber_post` | `moderate_non_subscriber_post=no` | `no` | If set to `yes`, all postings from people who are not allowed to post to the list will be moderated. Default (set to `no`) is denied. + `disable_retrieving_old_posts` | `disable_retrieving_old_posts=yes` | | If set to `yes`, retrieving old posts by sending email to address `+get-N@` is disabled. + `only_subscriber_can_get_old_posts` | `only_subscriber_can_get_old_posts=no` | `yes` | If set to `yes`, only subscribers can retrieve old posts by sending email to `LISTNAME+get-N@` + `disable_retrieving_subscribers` | `disable_retrieving_subscribers=yes` | `yes` | If set to `yes`, (owner) retrieving subscribers by sending email to `LISTNAME+list@` is disabled. Note: only owner can send to such address. + `disable_send_copy_to_sender` | `disable_send_copy_to_sender=yes` | `yes` | If set to `yes`, senders won't receive copies of their own posts. + `notify_owner_when_sub_unsub` | `notify_owner_when_sub_unsub=no` | `no` | Notify the owner(s) when someone sub/unsubscribing to a mailing list. + `notify_sender_when_moderated` | `notify_sender_when_moderated=no` | `no` | Notify sender (based on the envelope from) when their post is being moderated. + `disable_archive` | `disable_archive=yes` | `no` | If set to `yes`, emails won't be saved in the archive but simply deleted. + `moderate_subscription` | `moderate_subscription=yes` | `no` | If set to `yes`, subscription will be moderated by owner(s) or moderators specified by `subscription_moderators`. Moderators specified by `subscription_moderators` has higher priority. If set to `no`, subscription is not moderated, also, all moderators which were specified by `subscription_moderators` will be removed. + `extra_addresses` | `extra_addresses=extra1@domain.com,extra2@domain.com` | | Define extra addresses of the mailing list. + `subscription_moderators` | `subscription_moderators=,,` | | Specify subscription moderators. Note: if `subscription_moderators` is given, `moderate_subscription` will be set to `yes` automatically. If no valid moderators are given, subscription will be moderated by owner(s). + `owner` | `owner=,,` | | Define owner(s) of the mailing list. Owners will get mails sent to `+owner@`. + `moderators` | `moderators=,` | | Specify moderators of the mailing list. Set to empty value will remove all existing moderators. + `max_message_size` | `max_message_size=10240` | | Specify max mail message size in __bytes__. + `subject_prefix` | `subject_prefix=[prefix text]` | | Add a prefix in the `Subject:` line of mails sent to the list. Set to empty value to remove it. + `custom_headers` | `custom_headers=:\n:` | | Add custom headers to every mail coming through. Multiple headers must be separated by `\n`. Set empty value to remove it. Note: mlmmjadmin will always add `X-Mailing-List: ` and `Reply-To: ` for each mailing list account. + `remove_headers` | `remove_headers=Message-ID,Received` | | Remove given mail headers. NOTE: either `header:` or `header` (without `:`) is ok. Note: mlmmjadmin will always remove `DKIM-Signature:` and `Authentication-Results:`. + `name` | `name=Short description of list` | | Set a short description of the mailing list account. + `footer_text` | `footer_text=footer in plain text` | | Append footer (in plain text format) to every email sent to the list. + `footer_html` | `footer_text=

footer in html

` | | Append footer (in html format) to every email sent to the list. + + Parameters used to add subscribers: + + Parameter | Sample Usage | Default Value | Comment + --- |--- |---|--- + `add_subscribers` | `add_subscribers=,,,...` | | Subscribe users to mailing list. Multiple subscribers must be separated by comma. + `require_confirm` | `require_confirm=no` | `yes` | Send email to subscribers and let subscribers confirm the subscription. + `subscription` | `subscription=normal` | `normal` | Subscribe to different subscription. Valid values are: `normal`, `digest`, `nomail`. + + Parameters used to remove subscribers: + + Parameter | Sample Usage | Default Value | Comment + --- |--- |---|--- + `remove_subscribers` | `remove_subscribers=,,,...` | | Remove existing subscribers from mailing list. Multiple subscribers must be separated by comma. + +
+ +### Mailing List (Unsubscribable) {: .toggle } + +!!! attention + + * This unsubscribable mailing list is only available in __LDAP__ backend. + * It's recommended to use the Subscribable Mailing List instead, you're + free to disable public subscribable. + +!!! 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 } `Parameters`{: .has_params }" + +
+ + Parameter | Summary | Sample Usage + --- |--- |--- + `archive` | Archive subscribable mailing list before deleting the account. NOTE: This option is only applicable to the subscribable mailing list account. | `archive=no` + +
+ +!!! 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` + `accountStatus` | Enable or disable domain. Valid values: `active`, `disabled`. | `accountStatus=active` + `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 }" + +!!! api "`GET`{: .get } `/api/aliases/`{: .url } `Get mail aliases' profiles under given domain`{: .comment } `Parameters`{: .has_params }" + +
+ + Parameter | Default Value | Comment | Sample Usage + --- |--- |--- |--- + `email_only` | `no` | Return a list of mail aliases' email addresses instead of detailed profiles. | `email_only=yes` + `disabled_only` | `no` | Return only disabled mail aliases. | `disabled_only=yes` + +
+ +### 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 }" + + + + + + + diff --git a/en_US/iredadmin/2-iredadmin-pro.restful.api.md b/en_US/iredadmin/2-iredadmin-pro.restful.api.md index 5392108c..133c9070 100644 --- a/en_US/iredadmin/2-iredadmin-pro.restful.api.md +++ b/en_US/iredadmin/2-iredadmin-pro.restful.api.md @@ -4,8 +4,8 @@ !!! attention - * This document is applicable to `iRedAdmin-Pro-SQL-3.3` and - `iRedAdmin-Pro-LDAP-3.5`. If you're running an old release, please + * This document is applicable to `iRedAdmin-Pro-SQL-3.4` and + `iRedAdmin-Pro-LDAP-3.6`. 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 diff --git a/html/iredadmin-pro.restful.api-20190428.html b/html/iredadmin-pro.restful.api-20190428.html new file mode 100644 index 00000000..1f99d8ad --- /dev/null +++ b/html/iredadmin-pro.restful.api-20190428.html @@ -0,0 +1,2433 @@ + + + + + iRedAdmin-Pro: RESTful API + + + + +

iRedAdmin-Pro: RESTful API

+ +
+

Attention

+ +
+

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': <program_output>}.
    • +
    +
  • +
  • If operation failed, it returns JSON data: {'_success': false, '_msg': '<error_reason>'}.
  • +
+

Enable RESTful API

+

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

+
ENABLE_RESTFUL_API = True
+
+ +

Restarting Apache or uwsgi (if you're running Nginx) is required after changed +iRedAdmin config file.

+
+

iRedAdmin-Pro config file location

+
    +
  • on RHEL/CentOS, it's /opt/www/iredadmin/settings.py (in recent iRedMail + releases) or /var/www/iredadmin/settings.py (in old iRedMail releases).
  • +
  • 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 /opt/www/iredadmin/settings.py (in recent iRedMail + releases) or /var/www/iredadmin/settings.py (in old iRedMail releases).
  • +
+
+

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', ...]
+
+ +

Sample code to interact with iRedAdmin-Pro RESTful API

+ +

APIs

+

Notes:

+
    +
  • Parameter name with a * mark means the parameter is required, otherwise is optional.
  • +
  • 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
  • +
+

+

Login

+
+

POST /api/login Login with an admin username (full email address) and password Parameters

+
+ + + + + + + + + + + + + + + + + + + + + +
ParameterSummarySample Usage
usernameAdmin username. Must be a full email address.username=admin@mydomain.com
password(Plain) admin password.password=AsTr0ng@
+
+ +
+

Domain

+
+

GET /api/domains Get profiles of all managed mail domains Parameters

+
+ + + + + + + + + + + + + + + + + + + + + +
ParameterSummarySample Usage
name_onlyReturn only mail domain namesname_only=yes
disabled_onlyReturn only disabled mail domainsdisabled_only=yes
+
+ +
+
+

GET /api/domain/<domain> Get profile of an existing domain

+
+
+

POST /api/domain/<domain> Create a new domain Parameters

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterSummarySample Usage
name*Short description of this domain name. e.g. company namename=Google Inc
quotaPer-domain mailbox quota, in MB.quota=2048
languageDefault preferred language for newly created mail userlanguage=en_US
transportTransport programtransport=dovecot
defaultQuotaDefault per-user mailbox quota for newly created user, in MB.defaultQuota=1024
maxUserQuotaMax mailbox quota of a mail user, in MB.maxUserQuota=2048
numberOfUsersMax number of mail user accountsnumberOfUsers=20
numberOfAliasesMax number of mail alias accountsnumberOfAliases=30
numberOfListsMax number of mailing list accounts (Available in LDAP backends)numberOfLists=40
senderBccPer-domain sender bccsenderBcc=user@domain.com
recipientBccPer-domain recipient bccrecipientBcc=user@domain.com
+
+ +
+
+

DELETE /api/domain/<domain> Delete an existing domain (all mail messages will NOT be removed)

+
+
+

DELETE /api/domain/<domain>/keep_mailbox_days/<number> Delete domain, and keep all mail messages for given days. Defaults to 0 day which means keeping forever.

+
+
+

PUT /api/domain/<domain> Update profile of an existing domain Parameters

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterSummarySample Usage
nameShort description of this domain name. e.g. company namename=Google Inc
accountStatusEnable or disable domain. Possible values: active, disabled.accountStatus=active
quotaMailbox quota for whole domain, in MB.quota=2048
languageDefault preferred language for newly created mail userlanguage=en_US
transportTransport programtransport=dovecot
minPasswordLengthMinimal password lengthminPasswordLength=8
maxPasswordLengthMaximum password lengthminPasswordLength=20
defaultQuotaDefault per-user mailbox quota for newly created userdefaultQuota=1024
maxUserQuotaMax mailbox quota of a mail usermaxUserQuota=2048
numberOfUsersMax number of mail user accountsnumberOfUsers=20
numberOfAliasesMax number of mail alias accountsnumberOfAliases=30
senderBccPer-domain sender bcc addresssenderBcc=user@domain.com
recipientBccPer-domain recipient bcc addressrecipientBcc=user@domain.com
is_backupmxMark domain as Backup MX. Must be used with parameter primarymx. Conflicts with parameter transport.is_backupmx=yes (or no)
primarymxHostname 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
catchallPer-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)
outboundRelayPer-domain outbound relay. Set an empty value to disable outbound relay.outboundRelay=smtp:[192.168.1.2]:25 or outboundRelay= (disable outbound relay)
addAliasDomainAdd new alias domains. Multiple services must be separated by comma.addAliasDomain=alias1.com,alias2.com
removeAliasDomainRemove existing alias domains. Multiple services must be separated by comma.removeAllServices=alias1.com,alias2.com
aliasDomainsReset all alias domains. If empty, all existing alias domains will be removed. Conflicts with parameter addAliasDomain and removeAliasDomain.aliasDomains=alias1.com,alias2.com
addServiceEnable new services. Multiple services must be separated by comma. Available services are listed below.addService=self-service
removeServiceDisable existing services. Multiple services must be separated by comma. Available services are listed below.removeService=self-service
servicesReset all services. If empty, all existing services will be removed.services=mail,self-service
disableDomainProfiledisable 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
enableDomainProfileenable 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
disableUserProfiledisable 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
enableUserProfileenable 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
disableUserPreferencedisable 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
enableUserPreferencedisable 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:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ProfileComment
self-serviceEnable self-service for the mail domain.
mailAll mail services. (LDAP backends only)
domainaliasAlias domain support. (LDAP backends only)
senderbccPer-domain sender bcc. (LDAP backends only)
recipientbccPer-domain recipient bcc. (LDAP backends only)
+

Available domain profiles:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ProfileComment
bccPer-domain sender bcc and recipient bcc
relayPer-domain inbound relay and outbound relay
catchallPer-domain catchall account
aliasesAlias domains
throttlePer-domain inbound and outbound throttling
greylistingPer-domain greylisting service
wblistPer-domain whitelists and blacklists
spampolicyPer-domain spam policy
backupmxBackup MX
advancedSome extra settings
+

Available user profiles:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ProfileComment
bccPer-user sender bcc and recipient bcc
forwardingPer-user mail forwarding addresses
relayPer-user inbound relay and outbound relay
aliasesPer-user alias addresses
throttlePer-user inbound and outbound throttling
greylistingPer-user greylisting service
wblistPer-user whitelists and blacklists
spampolicyPer-user spam policy
+

Available user preferences (self-service):

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ProfileComment
personal_infoName, time zone, preferred language of web UI
forwardingPer-user mail forwarding addresses
wblistPer-user whitelists and blacklists
quarantineManage quarantined mails
rcvd_mailsView basic info of received mails, and whitelist/blacklist mail sender directly.
spampolicyPer-user spam policy
+
+ +
+
+

PUT /api/domain/admins/<domain> Manage normal domain admins. Parameters

+
+ +
+

Attention

+

Normal domain admin can only promote mail users under managed domains +to be a domain admin.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterSummarySample Usage
addAdminAdd new domain admins. Multiple services must be separated by comma.addAdmin=one@domain.com,two@domain.com
removeAdminRemove existing domain admins. Multiple services must be separated by comma.removeAdmin=one@domain.com,two@domain.com
removeAllAdminsRemove all existing domain admins.removeAllAdmins= (empty value)
+
+ +
+

Domain Admin

+
+

Attention

+
    +
  • This is standalone domain admin account, not mail user with admin privileges.
  • +
  • Only global admin can access these APIs.
  • +
+
+
+

GET /api/admin/<mail> Get profile of an existing domain admin

+
+
+

POST /api/admin/<mail> Create a new domain admin Parameters

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterSummarySample Usage
nameDisplay namename=My Admin Name
passwordPasswordpassword=AsTr0ng@
accountStatusEnable or disable account. Possible values: active, disabled.accountStatus=active
languagePreferred language of iRedAdmin web UIlanguage=en_US
isGlobalAdminMark this admin as global adminisGlobalAdmin=yes
+

Below parameters are used by normal domain admin (isGlobalAdmin=no). With isGlobalAdmin=yes, these parameters will be discarded.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterSummarySample Usage
maxDomainshow many mail domains this admin can createmaxDomains=5
maxQuotahow 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
quotaUnitQuota unit used by maxQuota parameter. Must be used with parameter maxQuota. Possible values: TB, GB, MB.quotaUnit=TB
maxUsershow many mail users this admin can create. It's shared by all domains created/managed by this admin.maxUsers=100
maxAliaseshow many mail aliases this admin can create. It's shared by all domains created/managed by this admin.maxAliases=200
maxListshow many mailing lists this admin can create. It's shared by all domains created/managed by this admin.maxLists=300
disableViewingMailLogDisallow this admin to view log of inbound/outbound mails.disableViewingMailLog=yes (or no)
disableManagingQuarantinedMailsDisallow this admin to manage quarantined mails.disableManagingQuarantinedMails=yes (or no)
+
+ +
+
+

DELETE /api/admin/<mail> Delete an existing domain admin

+
+
+

PUT /api/admin/<mail> Update profile of an existing domain admin Parameters

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterSummarySample Usage
nameDisplay namename=My Admin Name
passwordPasswordpassword=AsTr0ng@
accountStatusEnable or disable account. Possible values: active, disabled.accountStatus=active
languagePreferred language of iRedAdmin web UIlanguage=en_US
isGlobalAdminMark this admin as global adminisGlobalAdmin=yes
+

Below parameters are used by normal domain admin (isGlobalAdmin=no). With isGlobalAdmin=yes, these parameters will be discarded.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterSummarySample Usage
maxDomainshow many mail domains this admin can createmaxDomains=5
maxQuotahow 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
quotaUnitQuota unit used by maxQuota parameter. Must be used with parameter maxQuota. Possible values: TB, GB, MB.quotaUnit=TB
maxUsershow many mail users this admin can create. It's shared by all domains created/managed by this admin.maxUsers=100
maxAliaseshow many mail aliases this admin can create. It's shared by all domains created/managed by this admin.maxAliases=200
maxListshow many mailing lists this admin can create. It's shared by all domains created/managed by this admin.maxLists=300
disableViewingMailLogDisallow this admin to view log of inbound/outbound mails.disableViewingMailLog=yes (or no)
disableManagingQuarantinedMailsDisallow this admin to manage quarantined mails.disableManagingQuarantinedMails=yes (or no)
+
+ +
+
+

POST /api/verify_password/admin/<mail> Verify given (plain) password against the one stored in SQL/LDAP Parameters

+
+ +
+

Attention

+

Password verification is limited to global domain admin.

+
+ + + + + + + + + + + + + + + +
ParameterSummarySample Usage
passwordPlain passwordpassword=u0tBF82cIV@vi8Gme
+
+ +
+

Mail User

+
+

GET /api/user/<mail> Get profile of an existing mail user

+
+
+

POST /api/user/<mail> Create a new mail user Parameters

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterSummarySample Usage
nameDisplay namename=My New Name
passwordPasswordpassword=AsTr0ng@
languagePreferred language of iRedAdmin web UIlanguage=en_US
quotaMailbox quota (in MB)quota=1024
mailboxFormatMailbox format. e.g. maildir, mdbox. Defaults to maildir if not present. For more details, please read Dovecot document: https://wiki2.dovecot.org/MailboxFormat. WARNING: Changing mailbox format does not migrate the mailbox on file system automatically, you have to migrate it manually. New email will be stored in new mailbox format immediately.mailboxFormat=mdbox
mailboxFolderMailbox folder name (case sensitive) which will be appended to user's home path. Defaults to Maildir. It's useful if you need to migrate to different mailbox folder. WARNING: New email will be stored in new mailbox folder immediately.mailboxFolder=Maildir
maildirAbsolute path of the mailbox. All characters will be converted to lower cases.maildir=/var/vmail/vmail1/example.com/username
+
+ +
+
+

DELETE /api/user/<mail> Delete an existing mail user

+
+
+

DELETE /api/user/<mail>/keep_mailbox_days/<number> Delete an existing mail user, and keep the mailbox for given days. Defaults to 0 day which means keeping forever.

+
+
+

PUT /api/user/<mail> Update profile of an existing mail user Parameters

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterSummarySample Usage
nameDisplay namename=Michael Jordon
gnGiven namegn=Jordon
snSurnamesn=Jeffery
passwordSet user password to the given one.password=u0tBF82cIV@vi8Gme
password_hashSet user password to the given hashed password. Conflict with parameter password.password={SSHA}qjmhvlsofWDu/AvVhOJX1cU/CvYKLYlwlM5bHw==
quotaMailbox quota (in MB)quota=1024
accountStatusEnable or disable user. Possible values: active, disabled.accountStatus=active
languagePreferred language of iRedAdmin web UIlanguage=en_US
employeeidUser ID (or Employee Number)employeeid=My Employee ID
transportTransport programtransport=dovecot
isGlobalAdminPromote user to be a global admin. Possible values: yes, noisGlobalAdmin=yes
forwardingPer-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
senderBccPer-user BCC for outbound emails. Only one email address is allowed. Parameter with empty value will remove existing sender bcc address.senderBcc=user1@domain.com or
senderBcc= (remove existing bcc address)
recipientBccPer-user BCC for inbound emails. Only one email address is allowed. Parameter with empty value will remove existing recipient bcc address.recipientBcc=user1@domain.com or
recipientBcc= (remove existing bcc address)
aliasesPer-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
addAliasAdd new per-user alias addresses. Multiple addresses must be separated by comma. Conflicts with parameter aliases.addAlias=user1@domain.com,user2@domain.com,user3@domain.com
removeAliasRemove existing per-user alias addresses. Multiple addresses must be separated by comma. Conflicts with parameter aliases.removeAlias=user1@domain.com,user2@domain.com,user3@domain.com
servicesReset per-user enabled mail services to given values. Conflicts with parameter addService and removeService. See additional notes below.services=mail,smtp,pop3,imap
addServiceAdd new per-user enabled mail service(s). Multiple values must be separated by comma. Conflicts with parameter services. See additional notes below.addService=vpn,owncloud
removeServiceAdd new per-user enabled mail service(s). Multiple values must be separated by comma. Conflicts with parameter services. See additional notes below.removeService=forward,senderbcc
mailboxFormatMailbox format. e.g. maildir, mdbox. Defaults to maildir if not present. For more details, please read Dovecot document: https://wiki2.dovecot.org/MailboxFormat. WARNING: Changing mailbox format does not migrate the mailbox on file system automatically, you have to migrate it manually. New email will be stored in new mailbox format immediately.mailboxFormat=mdbox
mailboxFolderMailbox folder name (case sensitive) which will be appended to user's home path. Defaults to Maildir. It's useful if you need to migrate to different mailbox folder. WARNING: New email will be stored in new mailbox folder immediately.mailboxFolder=Maildir
maildirAbsolute path of the mailbox. All characters will be converted to lower cases.maildir=/var/vmail/vmail1/example.com/username
+
+

Attention

+

Notes about services, addService, removeService parameters:

+
    +
  • +

    Available service names in iRedMail:

    +
      +
    • smtp
    • +
    • smtpsecured (SMTP over TLS or SSL)
    • +
    • smtptls (SMTP over TLS)
    • +
    • pop3
    • +
    • pop3secured (POP3 over TLS or SSL)
    • +
    • pop3tls (POP3 over TLS)
    • +
    • imap
    • +
    • imapsecured (IMAP over TLS or SSL)
    • +
    • imaptls (IMAP over TLS)
    • +
    • managesieve
    • +
    • managesievesecured (Managesieve over TLS or SSL)
    • +
    • managesievetls (Managesieve over TLS)
    • +
    • deliver (deliver received email to local mailbox)
    • +
    • sogo (SOGo groupware)
    • +
    +
  • +
  • +

    For LDAP backends, you're free to add custom service names, because + the LDAP attribute name used to store service names supports storing + multiple values and we don't need to change LDAP schema.

    +
  • +
  • +

    For SQL backends, column enable<service> in SQL table + vmail.mailbox must be present, if not, specified service name will + be silently ignored.

    +
  • +
+
+
+ +
+
+

POST /api/user/<mail>/change_email/<new_mail> Change user's email address (from '<mail>' to '<new_mail>')

+
+
+

GET /api/users/<domain> Get user profiles under given domain Parameters

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
ParameterDefault ValueCommentSample Usage
email_onlynoReturn a list of mail users' email addresses instead of detailed profiles.email_only=yes
disabled_onlynoReturn only disabled mail users.disabled_only=yes
+
+ +
+
+

PUT /api/users/<domain> Update profiles of all users under given domain Parameters

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterComment
accountStatusAccount status. Possible value is: active, disabled.
passwordPassword
languagePreferred language of iRedAdmin web UI
transportPer-user transport
+
+ +
+
+

POST /api/verify_password/user/<mail> Verify given (plain) password against the one stored in SQL/LDAP Parameters

+
+ +
+

Attention

+

Password verification is limited to global domain admin.

+
+ + + + + + + + + + + + + + + +
ParameterSummarySample Usage
passwordPlain passwordpassword=u0tBF82cIV@vi8Gme
+
+ +
+

[NEW] Subscribable Mailing List

+
+

Attention

+
    +
  • Subscribable mailing list requires iRedMail-0.9.8 and later releases, + it's implemented with mlmmj mailing list manager.
  • +
  • It's available for both SQL and LDAP backends.
  • +
+
+
+

GET /api/mls/<domain> Get profile of all mailing lists under given domain Parameters

+
+ + + + + + + + + + + + + + + + + + +
ParameterSample UsageDefault ValueComment
email_onlyemail_only=yesnoReturn a list of mailing list email addresses instead of detailed profile.
+
+ +
+
+

GET /api/ml/<mail> Get profile of an existing mailing list account Parameters

+
+ + + + + + + + + + + + + + + + + + +
ParameterSample UsageDefault ValueComment
with_subscriberswith_subscribers=yesnoGet subscribers of mailing list.
+
+ +
+
+

POST /api/ml/<mail> Create a new mailing list Parameters

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterSample UsageDefault ValueComment
namename=Sales TeamDisplay name of the mailing list.
accountStatusaccountStatus=activeEnable or disable account. Possible values: active, disabled.
maxMailSizemaxMailSize=1048576 (1M)Max message size (in bytes).
accessPolicyaccessPolicy=membersonlyDefines who can send email to this mailing list. Possible values: public, domain, subdomain, membersonly, moderatorsonly.
is_newsletteris_newsletter=yesnoMark this mailing list as a newsletter, to enable subscription/unsubscription from web site.
newsletter_descriptionnewsletter_description=short description textThe short description text displayed on newsletter subscription page.
close_listclose_list=yesnoIf set to yes, subscription and unsubscription via mail is disabled.
only_moderator_can_postonly_moderator_can_post=yesnoIf set to yes, only moderators are allowed to post to it. The check is made against the From: header.
only_subscriber_can_postonly_subscriber_can_post=yesyesIf set to yes, only subscribed members are allowed to post to it. The check is made against the From: header.
disable_subscriptiondisable_subscription=yesnoIf set to yes, subscription is disabled, but unsubscription is still possible.
disable_subscription_confirmdisable_subscription_confirm=yesIf set to yes, mlmmj won't send mail to subscriber to ask for confirmation to subscribe to the list. WARNING: This should in principle never ever be used, but there are times on local lists etc. where this is useful. HANDLE WITH CARE!
disable_digest_subscriptiondisable_digest_subscription=yesIf set to yes, subscription to the digest version of the mailing list is disabled. Useful if you don't want to allow digests and notify users about it.
disable_digest_textdisable_digest_text=yesIf set to yes, digest mails won't have a text part with a thread summary.
disable_nomail_subscriptiondisable_nomail_subscription=yesIf set to yes, subscription to the 'nomail' version of the mailing list is disabled. Useful if you don't want to allow 'nomail' and notify users about it.
moderatedmoderated=yesnoIf set to yes. Parameter owner or moderators is required to specify the moderators. Note: moderators has higher priority (means only addresses specified by moderators are act as moderators).
moderate_non_subscriber_postmoderate_non_subscriber_post=nonoIf set to yes, all postings from people who are not allowed to post to the list will be moderated. Default (set to no) is denied.
disable_retrieving_old_postsdisable_retrieving_old_posts=yesIf set to yes, retrieving old posts by sending email to address <listname>+get-N@ is disabled.
only_subscriber_can_get_old_postsonly_subscriber_can_get_old_posts=noyesIf set to yes, only subscribers can retrieve old posts by sending email to LISTNAME+get-N@
disable_retrieving_subscribersdisable_retrieving_subscribers=yesyesIf set to yes, (owner) retrieving subscribers by sending email to LISTNAME+list@ is disabled. Note: only owner can send to such address.
disable_send_copy_to_senderdisable_send_copy_to_sender=yesyesIf set to yes, senders won't receive copies of their own posts.
notify_owner_when_sub_unsubnotify_owner_when_sub_unsub=nonoNotify the owner(s) when someone sub/unsubscribing to a mailing list.
notify_sender_when_moderatednotify_sender_when_moderated=nonoNotify sender (based on the envelope from) when their post is being moderated.
disable_archivedisable_archive=yesnoIf set to yes, emails won't be saved in the archive but simply deleted.
moderate_subscriptionmoderate_subscription=yesnoIf set to yes, subscription will be moderated by owner(s) or moderators specified by subscription_moderators. Moderators specified by subscription_moderators has higher priority. If set to no, subscription is not moderated, also, all moderators which were specified by subscription_moderators will be removed.
extra_addressesextra_addresses=extra1@domain.com,extra2@domain.comDefine extra addresses of the mailing list.
subscription_moderatorssubscription_moderators=<mail1>,<mail2>,<mail3>Specify subscription moderators. Note: if subscription_moderators is given, moderate_subscription will be set to yes automatically. If no valid moderators are given, subscription will be moderated by owner(s).
ownerowner=<mail1>,<mail2>,<mail3>Define owner(s) of the mailing list. Owners will get mails sent to <listname>+owner@<domain.com>.
moderatorsmoderators=<mail1>,<mail2>Specify moderators of the mailing list. Set to empty value will remove all existing moderators.
max_message_sizemax_message_size=10240Specify max mail message size in bytes.
subject_prefixsubject_prefix=[prefix text]Add a prefix in the Subject: line of mails sent to the list. Set to empty value to remove it.
custom_headerscustom_headers=<header1>:<value1>\n<header2>:<value2>Add custom headers to every mail coming through. Multiple headers must be separated by \n. Set empty value to remove it. Note: mlmmjadmin will always add X-Mailing-List: <mail> and Reply-To: <mail> for each mailing list account.
remove_headersremove_headers=Message-ID,ReceivedRemove given mail headers. NOTE: either header: or header (without :) is ok. Note: mlmmjadmin will always remove DKIM-Signature: and Authentication-Results:.
namename=Short description of listSet a short description of the mailing list account.
footer_textfooter_text=footer in plain textAppend footer (in plain text format) to every email sent to the list.
footer_htmlfooter_text=<p>footer in html</p>Append footer (in html format) to every email sent to the list.
+

Parameters used to add subscribers:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterSample UsageDefault ValueComment
subscriberssubscribers=<mail1>,<mail2>,<mail3>,...Subscribe users to mailing list. Multiple subscribers must be separated by comma.
require_confirmrequire_confirm=noyesSend email to subscribers and let subscribers confirm the subscription.
subscriptionsubscription=normalnormalSubscribe to different subscription. Valid values are: normal, digest, nomail.
+
+ +
+
+

DELETE /api/ml/<mail> Delete an existing mailing list Parameters

+
+ + + + + + + + + + + + + + + + +
ParameterSummarySample Usage
keep_archiveArchive account settings and messages before deleting the mailing list.keep_archive=no
+
+ +
+
+

PUT /api/ml/<mail> Update profile of an existing mailing list Parameters

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterSample UsageDefault ValueComment
namename=Sales TeamDisplay name of the mailing list.
accountStatusaccountStatus=activeEnable or disable account. Possible values: active, disabled.
maxMailSizemaxMailSize=1048576 (1M)Max message size (in bytes).
accessPolicyaccessPolicy=membersonlyDefines who can send email to this mailing list. Possible values: public, domain, subdomain, membersonly, moderatorsonly.
is_newsletteris_newsletter=yesnoMark this mailing list as a newsletter, to enable subscription/unsubscription from web site.
newsletter_descriptionnewsletter_description=short description textThe short description text displayed on newsletter subscription page.
close_listclose_list=yesnoIf set to yes, subscription and unsubscription via mail is disabled.
only_moderator_can_postonly_moderator_can_post=yesnoIf set to yes, only moderators are allowed to post to it. The check is made against the From: header.
only_subscriber_can_postonly_subscriber_can_post=yesyesIf set to yes, only subscribed members are allowed to post to it. The check is made against the From: header.
disable_subscriptiondisable_subscription=yesnoIf set to yes, subscription is disabled, but unsubscription is still possible.
disable_subscription_confirmdisable_subscription_confirm=yesIf set to yes, mlmmj won't send mail to subscriber to ask for confirmation to subscribe to the list. WARNING: This should in principle never ever be used, but there are times on local lists etc. where this is useful. HANDLE WITH CARE!
disable_digest_subscriptiondisable_digest_subscription=yesIf set to yes, subscription to the digest version of the mailing list is disabled. Useful if you don't want to allow digests and notify users about it.
disable_digest_textdisable_digest_text=yesIf set to yes, digest mails won't have a text part with a thread summary.
disable_nomail_subscriptiondisable_nomail_subscription=yesIf set to yes, subscription to the 'nomail' version of the mailing list is disabled. Useful if you don't want to allow 'nomail' and notify users about it.
moderatedmoderated=yesnoIf set to yes. Parameter owner or moderators is required to specify the moderators. Note: moderators has higher priority (means only addresses specified by moderators are act as moderators).
moderate_non_subscriber_postmoderate_non_subscriber_post=nonoIf set to yes, all postings from people who are not allowed to post to the list will be moderated. Default (set to no) is denied.
disable_retrieving_old_postsdisable_retrieving_old_posts=yesIf set to yes, retrieving old posts by sending email to address <listname>+get-N@ is disabled.
only_subscriber_can_get_old_postsonly_subscriber_can_get_old_posts=noyesIf set to yes, only subscribers can retrieve old posts by sending email to LISTNAME+get-N@
disable_retrieving_subscribersdisable_retrieving_subscribers=yesyesIf set to yes, (owner) retrieving subscribers by sending email to LISTNAME+list@ is disabled. Note: only owner can send to such address.
disable_send_copy_to_senderdisable_send_copy_to_sender=yesyesIf set to yes, senders won't receive copies of their own posts.
notify_owner_when_sub_unsubnotify_owner_when_sub_unsub=nonoNotify the owner(s) when someone sub/unsubscribing to a mailing list.
notify_sender_when_moderatednotify_sender_when_moderated=nonoNotify sender (based on the envelope from) when their post is being moderated.
disable_archivedisable_archive=yesnoIf set to yes, emails won't be saved in the archive but simply deleted.
moderate_subscriptionmoderate_subscription=yesnoIf set to yes, subscription will be moderated by owner(s) or moderators specified by subscription_moderators. Moderators specified by subscription_moderators has higher priority. If set to no, subscription is not moderated, also, all moderators which were specified by subscription_moderators will be removed.
extra_addressesextra_addresses=extra1@domain.com,extra2@domain.comDefine extra addresses of the mailing list.
subscription_moderatorssubscription_moderators=<mail1>,<mail2>,<mail3>Specify subscription moderators. Note: if subscription_moderators is given, moderate_subscription will be set to yes automatically. If no valid moderators are given, subscription will be moderated by owner(s).
ownerowner=<mail1>,<mail2>,<mail3>Define owner(s) of the mailing list. Owners will get mails sent to <listname>+owner@<domain.com>.
moderatorsmoderators=<mail1>,<mail2>Specify moderators of the mailing list. Set to empty value will remove all existing moderators.
max_message_sizemax_message_size=10240Specify max mail message size in bytes.
subject_prefixsubject_prefix=[prefix text]Add a prefix in the Subject: line of mails sent to the list. Set to empty value to remove it.
custom_headerscustom_headers=<header1>:<value1>\n<header2>:<value2>Add custom headers to every mail coming through. Multiple headers must be separated by \n. Set empty value to remove it. Note: mlmmjadmin will always add X-Mailing-List: <mail> and Reply-To: <mail> for each mailing list account.
remove_headersremove_headers=Message-ID,ReceivedRemove given mail headers. NOTE: either header: or header (without :) is ok. Note: mlmmjadmin will always remove DKIM-Signature: and Authentication-Results:.
namename=Short description of listSet a short description of the mailing list account.
footer_textfooter_text=footer in plain textAppend footer (in plain text format) to every email sent to the list.
footer_htmlfooter_text=<p>footer in html</p>Append footer (in html format) to every email sent to the list.
+

Parameters used to add subscribers:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterSample UsageDefault ValueComment
add_subscribersadd_subscribers=<mail1>,<mail2>,<mail3>,...Subscribe users to mailing list. Multiple subscribers must be separated by comma.
require_confirmrequire_confirm=noyesSend email to subscribers and let subscribers confirm the subscription.
subscriptionsubscription=normalnormalSubscribe to different subscription. Valid values are: normal, digest, nomail.
+

Parameters used to remove subscribers:

+ + + + + + + + + + + + + + + + + +
ParameterSample UsageDefault ValueComment
remove_subscribersremove_subscribers=<mail1>,<mail2>,<mail3>,...Remove existing subscribers from mailing list. Multiple subscribers must be separated by comma.
+
+ +
+

Mailing List (Unsubscribable)

+
+

Attention

+
    +
  • This unsubscribable mailing list is only available in LDAP backend.
  • +
  • It's recommended to use the Subscribable Mailing List instead, you're + free to disable public subscribable.
  • +
+
+
+

GET /api/maillist/<mail> Get profile of an existing mailing list account

+
+
+

POST /api/maillist/<mail> Create a new mailing list Parameters

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterSummarySample Usage
nameDisplay namename=My List Name
accessPolicyDefines who can send email to this mail alias accountaccessPolicy=public
membersMembers of mailing list. Multiple members must be separated by comma.members=user1@domain.com,user2@domain.com
+
+ +
+
+

DELETE /api/maillist/<mail> Delete an existing mailing list Parameters

+
+ + + + + + + + + + + + + + + + +
ParameterSummarySample Usage
archiveArchive subscribable mailing list before deleting the account. NOTE: This option is only applicable to the subscribable mailing list account.archive=no
+
+ +
+
+

PUT /api/maillist/<mail> Update profile of an existing mailing list Parameters

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterSummarySample Usage
namedisplay namename=My List Name
accessPolicyDefines who can send email to this mailing listaccessPolicy=public
membersMembers of mailing list. Multiple members must be separated by comma. Conflict with parameter addMember and removeMember.members=user1@domain.com,user2@domain.com
addMemberAdd new members of mailing list. Multiple members must be separated by comma. Conflict with parameter members.addMember=user1@domain.com,user2@domain.com
removeMemberRemove 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

+
+

GET /api/alias/<mail> Get profile of an existing mail alias

+
+
+

POST /api/alias/<mail> Create a new mail alias Parameters

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterSummarySample Usage
nameDisplay namename=My List Name
accessPolicyDefines who can send email to this mail alias accountaccessPolicy=public
membersMembers 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.

+
+
+ +
+
+

DELETE /api/alias/<mail> Delete an existing mail alias

+
+
+

PUT /api/alias/<mail> Update profile of an existing mail alias Parameters

+
+ +
+

Attention

+

accessPolicy for mail alias account is only available for SQL backends.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterSummarySample Usage
nameDisplay namename=My List Name
accountStatusEnable or disable domain. Valid values: active, disabled.accountStatus=active
accessPolicyDefines who can send email to this mail alias accountaccessPolicy=public
membersMembers of mail alias. Multiple members must be separated by comma. Conflict with parameter addMember and removeMember.members=user1@domain.com,user2@domain.com
addMemberAdd new members of mail alias. Multiple members must be separated by comma. Conflict with parameter members.addMember=user1@domain.com,user2@domain.com
removeMemberRemove existing members of mail alias. Multiple members must be separated by comma. Conflict with parameter members.removeMember=user1@domain.com,user2@domain.com
+
+ +
+
+

POST /api/alias/<mail>/change_email/<new_mail> Change email address of alias account (from '<mail>' to '<new_mail>')

+
+
+

GET /api/aliases/<domain> Get mail aliases' profiles under given domain Parameters

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
ParameterDefault ValueCommentSample Usage
email_onlynoReturn a list of mail aliases' email addresses instead of detailed profiles.email_only=yes
disabled_onlynoReturn only disabled mail aliases.disabled_only=yes
+
+ +
+

Spam Policy

+
+

GET /api/spampolicy/global Get global spam policy

+
+
+

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

+
+
+

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

+
+
+

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.

+
+

Per-user policy has the highest priority, then per-domain policy, then global policy.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterSummarySample Usage
bypass_spam_checksBypass spam checksbypass_spam_checks=yes (default is no)
bypass_virus_checksBypass virus checksbypass_virus_checks=yes (default is no)
bypass_banned_checksBypass banned file type checksbypass_banned_checks=yes (default is no)
bypass_header_checksBypass bad header checksbypass_header_checks=yes (default is no)
quarantine_spamQuarantine detected spam into SQL databasequarantine_spam=yes (default is no)
quarantine_virusQuarantine detected virus into SQL databasequarantine_virus=no (default is yes)
quarantine_bannedQuarantine email with banned file type into SQL databasequarantine_banned=yes (default is no)
quarantine_bad_headerQuarantine email with bad header into SQL databasequarantine_bad_header=yes (default is no)
prefix_spam_in_subjectPrefix string [SPAM] in mail subject if it's spamprefix_spam_in_subject=yes (default is no)
always_insert_x_spam_headersAlways 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_scoreSet 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

+
+

GET /api/throttle/global/inbound Get global inbound throttle settings

+
+
+

POST /api/throttle/global/inbound Set global inbound throttle settings Parameters

+
+
+

GET /api/throttle/global/outbound Get global outbound throttle settings

+
+
+

POST /api/throttle/global/outbound Set global inbound throttle settings Parameters

+
+
+

GET /api/throttle/<domain>/inbound Get domain inbound throttle settings

+
+
+

POST /api/throttle/<domain>/inbound Set domain inbound throttle settings Parameters

+
+
+

GET /api/throttle/<domain>/outbound Get domain outbound throttle settings

+
+
+

POST /api/throttle/<domain>/outbound Set domain outbound throttle settings Parameters

+
+
+

GET /api/throttle/<mail>/inbound Get user inbound throttle settings

+
+
+

POST /api/throttle/<mail>/inbound Set user inbound throttle settings Parameters

+
+
+

GET /api/throttle/<mail>/outbound Get user outbound throttle settings

+
+
+

POST /api/throttle/<mail>/outbound Set user outbound throttle settings Parameters

+
+ +

Parameters available for global, per-domain, per-user throttle settings.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterSummarySample Usage
period *Period of time, in secondsperiod=3600 (one hour)
msg_sizeMax size of single email, in bytesmsg_size=10485760 (10 MB)
max_msgsNumber of max inbound emailsmax_msgs=20 (up to 20 messages)
max_quotaCumulative size of inbound or outbound emails, in bytesmax_quota=1048576000 (1 GB)
+
+ +
+

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)

+
+

GET /api/ldif/domain/<domain> Export domain to LDIF

+
+
+

GET /api/ldif/catchall/<domain> Export per-domain catch-all account to LDIF

+
+
+

GET /api/ldif/admin/<mail> Export (separated) domain admin to LDIF

+
+
+

GET /api/ldif/user/<mail> Export mail user to LDIF

+
+
+

GET /api/ldif/maillist/<mail> Export mailing list account to LDIF

+
+
+

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

+
+ + + + + + + \ No newline at end of file diff --git a/html/iredadmin-pro.restful.api.html b/html/iredadmin-pro.restful.api.html index 1f99d8ad..6778d100 100644 --- a/html/iredadmin-pro.restful.api.html +++ b/html/iredadmin-pro.restful.api.html @@ -46,8 +46,8 @@

Attention

    -
  • This document is applicable to iRedAdmin-Pro-SQL-3.3 and - iRedAdmin-Pro-LDAP-3.5. If you're running an old release, please +
  • This document is applicable to iRedAdmin-Pro-SQL-3.4 and + iRedAdmin-Pro-LDAP-3.6. 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