To restrict API access to few IP addresses, please login to iRedAdmin-Pro as
global admin, then click menu `System -> Settings`, find option `RESTful API is accessible only from specified IP addresses or networks`, input the allowed IP addresses or
!!! api "`DELETE`{: .delete } `/api/domain/<domain>/keep_mailbox_days/<number>`{: .url } `Delete domain, and keep all mail messages for given days. Defaults to 0 day which means keeping forever.`{: .comment }"
`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`
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`
`maxDomains` | how many mail domains this admin can create | `maxDomains=5`
`maxQuota` | how much mailbox quota this admin can create. Quota is shared by all domains created/managed by this admin. Must be used with parameter `quotaUnit`. Sample: 10TB, 20GB, 100MB.| `maxQuota=2`
`quotaUnit` | Quota unit used by `maxQuota` parameter. Must be used with parameter `maxQuota`. Possible values: TB, GB, MB. | `quotaUnit=TB`
`maxUsers` | how many mail users this admin can create. It's shared by all domains created/managed by this admin. | `maxUsers=100`
`maxAliases` | how many mail aliases this admin can create. It's shared by all domains created/managed by this admin. | `maxAliases=200`
`maxLists` | how many mailing lists this admin can create. It's shared by all domains created/managed by this admin. | `maxLists=300`
!!! api "`POST`{: .post } `/api/verify_password/admin/<mail>`{: .url } `Verify given (plain) password against the one stored in SQL/LDAP`{: .comment } `Parameters`{: .has_params} "
`password_hash` | Set user password to the given hashed/encrypted password. __NOTE__: Since the password is encrypted, iRedAdmin-Pro can not verify it against password policies. __WARNING__: Conflict with parameter `password`. | `password_hash={SSHA}APvI8DhU8Ktstdlye6yVDaypcrfqsUcXk0c7aQ==`
`mailboxFormat` | Mailbox 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`
`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/<mail>/keep_mailbox_days/<number>`{: .url } `Delete an existing mail user, and keep the mailbox for given days. Defaults to 0 day which means keeping forever.`{: .comment }"
`password_hash` | Set user password to the given hashed/encrypted password. __NOTE__: Since the password is encrypted, iRedAdmin-Pro can not verify it against password plicies. __WARNING__: Conflict with parameter `password`. | `password={SSHA}qjmhvlsofWDu/AvVhOJX1cU/CvYKLYlwlM5bHw==`
`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 <br/>`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 <br/>`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: <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`
`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 "`POST`{: .post } `/api/verify_password/user/<mail>`{: .url } `Verify given (plain) password against the one stored in SQL/LDAP`{: .comment } `Parameters`{: .has_params} "
!!! api "`POST`{: .post } `/api/ml/<mail>`{: .url } `Create a new mailing list`{: .comment } `Parameters`{: .has_params }"
<divclass="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`.
`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 `<listname>+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=<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).
`owner` | `owner=<mail1>,<mail2>,<mail3>` | | Define owner(s) of the mailing list. Owners will get mails sent to `<listname>+owner@<domain.com>`.
`moderators` | `moderators=<mail1>,<mail2>` | | 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=<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_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=<p>footer in html</p>` | | Append footer (in html format) to every email sent to the list.
!!! api "`DELETE`{: .delete } `/api/ml/<mail>`{: .url } `Delete an existing mailing list`{: .comment } `Parameters`{: .has_params }"
<divclass="params">
Parameter | Summary | Sample Usage
--- |--- |---
`keep_archive` | Archive account settings and messages before deleting the mailing list. | `keep_archive=no`
</div>
!!! api "`PUT`{: .put } `/api/ml/<mail>`{: .url } `Update profile of an existing mailing list`{: .comment } `Parameters`{: .has_params }"
<divclass="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`.
`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 `<listname>+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=<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).
`owner` | `owner=<mail1>,<mail2>,<mail3>` | | Define owner(s) of the mailing list. Owners will get mails sent to `<listname>+owner@<domain.com>`.
`moderators` | `moderators=<mail1>,<mail2>` | | 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=<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_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=<p>footer in html</p>` | | Append footer (in html format) to every email sent to the list.
Parameter | Sample Usage | Default Value | Comment
--- |--- |---|---
`add_subscribers` | `add_subscribers=<mail1>,<mail2>,<mail3>,...` | | 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=<mail1>,<mail2>,<mail3>,...` | | Remove existing subscribers from mailing list. Multiple subscribers must be separated by comma.
!!! api "`DELETE`{: .delete } `/api/maillist/<mail>`{: .url } `Delete an existing mailing list`{: .comment } `Parameters`{: .has_params }"
<divclass="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`
`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`
`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/<mail>/change_email/<new_mail>`{: .url } `Change email address of alias account (from '<mail>' to '<new_mail>')`{: .comment }"
`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.)
Valid whitelisting and blacklisting addresses. __Invalid addresses will be discarded silently.__
Address | Examples
--- |---
Single IP Address | `192.168.2.10`
IP CIDR Network | `192.168.2.0/24`, `2620:0:2d0:200::7/128`
Single email address | `user@domain.ltd`
Entire email domain | `@domain.ltd`
Entire email domain and all its sub-domains | `@.domain.ltd`
Catch-all address | `@.`
<br/>
!!! api "`GET`{: .get } `/api/wblist/inbound/whitelist/global`{: .url } `Get global whitelists for inbound.`{: .comment }"
!!! api "`GET`{: .get } `/api/wblist/inbound/blacklist/global`{: .url } `Get global blacklists for inbound.`{: .comment }"
!!! api "`GET`{: .get } `/api/wblist/outbound/whitelist/global`{: .url } `Get global whitelists for outbound.`{: .comment }"
!!! api "`GET`{: .get } `/api/wblist/outbound/blacklist/global`{: .url } `Get global whitelists for outbound.`{: .comment }"
!!! api "`GET`{: .get } `/api/wblist/inbound/whitelist/<domain>`{: .url } `Get per-domain whitelists for inbound.`{: .comment }"
!!! api "`GET`{: .get } `/api/wblist/inbound/blacklist/<domain>`{: .url } `Get per-domain blacklists for inbound.`{: .comment }"
!!! api "`GET`{: .get } `/api/wblist/outbound/whitelist/<domain>`{: .url } `Get per-domain whitelists for outbound.`{: .comment }"
!!! api "`GET`{: .get } `/api/wblist/outbound/blacklist/<domain>`{: .url } `Get per-domain whitelists for outbound.`{: .comment }"
!!! api "`GET`{: .get } `/api/wblist/inbound/whitelist/<mail>`{: .url } `Get per-user whitelists for inbound.`{: .comment }"
!!! api "`GET`{: .get } `/api/wblist/inbound/blacklist/<mail>`{: .url } `Get per-user blacklists for inbound.`{: .comment }"
!!! api "`GET`{: .get } `/api/wblist/outbound/whitelist/<mail>`{: .url } `Get per-user whitelists for outbound.`{: .comment }"
!!! api "`GET`{: .get } `/api/wblist/outbound/blacklist/<mail>`{: .url } `Get per-user whitelists for outbound.`{: .comment }"
!!! api "`POST`{: .post } `/api/wblist/inbound/whitelist/global`{: .url } `Add new global whitelists for inbound.`{: .comment } `Parameters`{: .has_params_wblist_put }"
!!! api "`POST`{: .post } `/api/wblist/inbound/blacklist/global`{: .url } `Add new global blacklists for inbound.`{: .comment } `Parameters`{: .has_params_wblist_put }"
!!! api "`POST`{: .post } `/api/wblist/outbound/whitelist/global`{: .url } `Add new global whitelists for outbound.`{: .comment } `Parameters`{: .has_params_wblist_put }"
!!! api "`POST`{: .post } `/api/wblist/outbound/blacklist/global`{: .url } `Add new global whitelists for outbound.`{: .comment } `Parameters`{: .has_params_wblist_put }"
!!! api "`POST`{: .post } `/api/wblist/inbound/whitelist/<domain>`{: .url } `Add new per-domain whitelists for inbound.`{: .comment } `Parameters`{: .has_params_wblist_put }"
!!! api "`POST`{: .post } `/api/wblist/inbound/blacklist/<domain>`{: .url } `Add new per-domain blacklists for inbound.`{: .comment } `Parameters`{: .has_params_wblist_put }"
!!! api "`POST`{: .post } `/api/wblist/outbound/whitelist/<domain>`{: .url } `Add new per-domain whitelists for outbound.`{: .comment } `Parameters`{: .has_params_wblist_put }"
!!! api "`POST`{: .post } `/api/wblist/outbound/blacklist/<domain>`{: .url } `Add new per-domain whitelists for outbound.`{: .comment } `Parameters`{: .has_params_wblist_put }"
!!! api "`POST`{: .post } `/api/wblist/inbound/whitelist/<mail>`{: .url } `Add new per-user whitelists for inbound.`{: .comment } `Parameters`{: .has_params_wblist_put }"
!!! api "`POST`{: .post } `/api/wblist/inbound/blacklist/<mail>`{: .url } `Add new per-user blacklists for inbound.`{: .comment } `Parameters`{: .has_params_wblist_put }"
!!! api "`POST`{: .post } `/api/wblist/outbound/whitelist/<mail>`{: .url } `Add new per-user whitelists for outbound.`{: .comment } `Parameters`{: .has_params_wblist_put }"
!!! api "`POST`{: .post } `/api/wblist/outbound/blacklist/<mail>`{: .url } `Add new per-user whitelists for outbound.`{: .comment } `Parameters`{: .has_params_wblist_put }"
<divclass="params params_wblist_put">
Parameters available for global, per-domain and per-user whitelist/blacklist settings.
Parameter | Summary | Sample Usage
--- |--- |---
`addresses` | The addresses you want to whitelist or blacklist.<br/>Multiple addresses must be separated by comma. | `addresses=user1@domain.com,192.168.1.10`
</div>
!!! api "`PUT`{: .put } `/api/wblist/inbound/whitelist/global`{: .url } `Delete given global whitelists for inbound.`{: .comment } `Parameters`{: .has_params_wblist }"
!!! api "`PUT`{: .put } `/api/wblist/inbound/blacklist/global`{: .url } `Delete given existing global blacklists for inbound.`{: .comment } `Parameters`{: .has_params_wblist }"
!!! api "`PUT`{: .put } `/api/wblist/outbound/whitelist/global`{: .url } `Delete given existing global whitelists for outbound.`{: .comment } `Parameters`{: .has_params_wblist }"
!!! api "`PUT`{: .put } `/api/wblist/outbound/blacklist/global`{: .url } `Delete given existing global whitelists for outbound.`{: .comment } `Parameters`{: .has_params_wblist }"
!!! api "`PUT`{: .put } `/api/wblist/inbound/whitelist/<domain>`{: .url } `Delete given per-domain whitelists for inbound.`{: .comment } `Parameters`{: .has_params_wblist }"
!!! api "`PUT`{: .put } `/api/wblist/inbound/blacklist/<domain>`{: .url } `Delete given per-domain blacklists for inbound.`{: .comment } `Parameters`{: .has_params_wblist }"
!!! api "`PUT`{: .put } `/api/wblist/outbound/whitelist/<domain>`{: .url } `Delete given per-domain whitelists for outbound.`{: .comment } `Parameters`{: .has_params_wblist }"
!!! api "`PUT`{: .put } `/api/wblist/outbound/blacklist/<domain>`{: .url } `Delete given per-domain whitelists for outbound.`{: .comment } `Parameters`{: .has_params_wblist }"
!!! api "`PUT`{: .put } `/api/wblist/inbound/whitelist/<mail>`{: .url } `Delete given per-user whitelists for inbound.`{: .comment } `Parameters`{: .has_params_wblist }"
!!! api "`PUT`{: .put } `/api/wblist/inbound/blacklist/<mail>`{: .url } `Delete given per-user blacklists for inbound.`{: .comment } `Parameters`{: .has_params_wblist }"
!!! api "`PUT`{: .put } `/api/wblist/outbound/whitelist/<mail>`{: .url } `Delete given per-user whitelists for outbound.`{: .comment } `Parameters`{: .has_params_wblist }"
!!! api "`PUT`{: .put } `/api/wblist/outbound/blacklist/<mail>`{: .url } `Delete given per-user whitelists for outbound.`{: .comment } `Parameters`{: .has_params_wblist }"
<divclass="params params_wblist_put">
Parameters available for global, per-domain and per-user whitelist/blacklist settings.
Parameter | Summary | Sample Usage
--- |--- |---
`addresses` | The addresses you want to whitelist or blacklist.<br/>Multiple addresses must be separated by comma. | `addresses=user1@domain.com,192.168.1.10`
</div>
!!! api "`DELETE`{: .delete } `/api/wblist/inbound/whitelist/global`{: .url } `Delete all existing global whitelists for inbound.`{: .comment }"
!!! api "`DELETE`{: .delete } `/api/wblist/inbound/blacklist/global`{: .url } `Delete all existing global blacklists for inbound.`{: .comment }"
!!! api "`DELETE`{: .delete } `/api/wblist/outbound/whitelist/global`{: .url } `Delete all existing global whitelists for outbound.`{: .comment }"
!!! api "`DELETE`{: .delete } `/api/wblist/outbound/blacklist/global`{: .url } `Delete all existing global whitelists for outbound.`{: .comment }"
!!! api "`DELETE`{: .delete } `/api/wblist/inbound/whitelist/<domain>`{: .url } `Delete all per-domain global whitelists for inbound.`{: .comment }"
!!! api "`DELETE`{: .delete } `/api/wblist/inbound/blacklist/<domain>`{: .url } `Delete all per-domain global blacklists for inbound.`{: .comment }"
!!! api "`DELETE`{: .delete } `/api/wblist/outbound/whitelist/<domain>`{: .url } `Delete all per-domain existing global whitelists for outbound.`{: .comment }"
!!! api "`DELETE`{: .delete } `/api/wblist/outbound/blacklist/<domain>`{: .url } `Delete all per-domain existing global whitelists for outbound.`{: .comment }"
!!! api "`DELETE`{: .delete } `/api/wblist/inbound/whitelist/<mail>`{: .url } `Delete all per-user existing global whitelists for inbound.`{: .comment }"
!!! api "`DELETE`{: .delete } `/api/wblist/inbound/blacklist/<mail>`{: .url } `Delete all per-user existing global blacklists for inbound.`{: .comment }"
!!! api "`DELETE`{: .delete } `/api/wblist/outbound/whitelist/<mail>`{: .url } `Delete all per-user existing global whitelists for outbound.`{: .comment }"
!!! api "`DELETE`{: .delete } `/api/wblist/outbound/blacklist/<mail>`{: .url } `Delete all per-user existing global whitelists for outbound.`{: .comment }"
!!! api "`GET`{: .get } `/api/greylisting/global/whitelists`{: .url } `Get globally whitelisted senders for greylisting service`{: .comment }"
!!! api "`GET`{: .get } `/api/greylisting/<domain>/whitelists`{: .url } `Get whitelisted senders for greylisting service for specified domain`{: .comment }"
!!! api "`GET`{: .get } `/api/greylisting/<mail>/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/<domain>/whitelists`{: .url } `Whitelist senders for greylisting service for specified domain`{: .comment } `Parameters`{: .has_params_greylisting_whitelists }"
!!! api "`POST`{: .post } `/api/greylisting/<mail>/whitelists`{: .url } `Whitelist senders for greylisting services for specified user`{: .comment } `Parameters`{: .has_params_greylisting_whitelists }"
<divclass="params 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
</div>
!!! 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 }"
<divclass="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`
<!--
`query_dns_immediately` | Query SPF/MX/A DNS records of given sender domains immediately, and whitelist returned IP/networks | `query_dns_immediately=yes`