Attention
Check out the lightweight on-premises email archiving software developed by iRedMail team: Spider Email Archiver.
Attention
iRedAdmin-Pro-SQL-3.8
and
iRedAdmin-Pro-LDAP-3.9
. If you're running an old release, please
upgrade iRedAdmin-Pro to the latest release, or check
document for old releases.iRedAdmin-Pro RESTful API will return message in JSON format.
POST
, DELETE
, PUT
methods, it returns JSON data: {'_success': true}
.GET
method, it returns JSON data: {'_success': true, '_data': <program_output>}
.{'_success': false, '_msg': '<error_reason>'}
.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 iredadmin
(if you're running Nginx) or Apache service is required
after changed iRedAdmin config file.
iRedAdmin-Pro config file location
/opt/www/iredadmin/settings.py
(in recent iRedMail
releases) or /var/www/iredadmin/settings.py
(in old iRedMail releases)./opt/www/iredadmin/settings.py
(in recent
iRedMail releases) or /usr/share/apache2/iredadmin/settings.py
(in old
iRedMail releases)./usr/local/www/iredadmin/settings.py
./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 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
networks.
Notes:
*
mark means the parameter is required, otherwise is optional.<domain>
in URL by the real domain name. e.g. example.com
<mail>
in URL by the real email address. e.g. user@domain.com
<number>
in URL by an integer number. e.g. 30
, 200
POST
/api/login
Login with an admin username (full email address) and password
Parameters
Parameter | Summary | Sample Usage |
---|---|---|
username |
Admin username. Must be a full email address. | username=admin@mydomain.com |
password |
(Plain) admin password. | password=AsTr0ng@ |
GET
/api/domains
Get profiles of all managed mail domains
Parameters
Parameter | Summary | Sample Usage |
---|---|---|
name_only |
Return only mail domain names | name_only=yes |
disabled_only |
Return only disabled mail domains | disabled_only=yes |
GET
/api/domain/<domain>
Get profile of an existing domain
POST
/api/domain/<domain>
Create a new domain
Parameters
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 |
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
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. |
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 |
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.
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) |
Attention
GET
/api/admin/<mail>
Get profile of an existing domain admin
POST
/api/admin/<mail>
Create a new domain admin
Parameters
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 ) |
DELETE
/api/admin/<mail>
Delete an existing domain admin
PUT
/api/admin/<mail>
Update profile of an existing domain admin
Parameters
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 ) |
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.
Parameter | Summary | Sample Usage |
---|---|---|
password |
Plain password | password=u0tBF82cIV@vi8Gme |
GET
/api/user/<mail>
Get profile of an existing mail user
POST
/api/user/<mail>
Create a new mail user
Parameters
Parameter | Summary | Sample Usage |
---|---|---|
name |
Display name | name=My New Name |
password |
Plain password. WARNING: Conflict with parameter password_hash . |
password=AsTr0ng@ |
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== |
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: 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 |
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
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/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== |
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: 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 |
Attention
Notes about services
, addService
, removeService
parameters:
Available service names in iRedMail:
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
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 |
PUT
/api/users/<domain>
Update profiles of all users under given domain
Parameters
Parameter | Comment |
---|---|
accountStatus |
Account status. Possible value is: active, disabled. |
password |
Password |
language |
Preferred language of iRedAdmin web UI |
transport |
Per-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.
Parameter | Summary | Sample Usage |
---|---|---|
password |
Plain password | password=u0tBF82cIV@vi8Gme |
Attention
mlmmj
mailing list manager.GET
/api/mls/<domain>
Get profile of all mailing lists under given domain
Parameters
Parameter | Sample Usage | Default Value | Comment |
---|---|---|---|
email_only |
email_only=yes |
no |
Return a list of mailing list email addresses instead of detailed profile. |
GET
/api/ml/<mail>
Get profile of an existing mailing list account
Parameters
Parameter | Sample Usage | Default Value | Comment |
---|---|---|---|
with_subscribers |
with_subscribers=yes |
no |
Get subscribers of mailing list. |
POST
/api/ml/<mail>
Create a new mailing list
Parameters
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. |
Parameters used to add subscribers:
Parameter | Sample Usage | Default Value | Comment |
---|---|---|---|
subscribers |
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 . |
DELETE
/api/ml/<mail>
Delete an existing mailing list
Parameters
Parameter | Summary | Sample Usage |
---|---|---|
keep_archive |
Archive account settings and messages before deleting the mailing list. | keep_archive=no |
PUT
/api/ml/<mail>
Update profile of an existing mailing list
Parameters
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. |
Parameters used to add subscribers:
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. |
Attention
GET
/api/maillist/<mail>
Get profile of an existing mailing list account
POST
/api/maillist/<mail>
Create a new mailing list
Parameters
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 |
DELETE
/api/maillist/<mail>
Delete an existing mailing list
Parameters
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 |
PUT
/api/maillist/<mail>
Update profile of an existing mailing list
Parameters
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 |
GET
/api/alias/<mail>
Get profile of an existing mail alias
POST
/api/alias/<mail>
Create a new mail alias
Parameters
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.
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.
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 |
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
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 |
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.
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.) |
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.
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) |
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 | @. |
GET
/api/wblist/inbound/whitelist/global
Get global whitelists for inbound.
GET
/api/wblist/inbound/blacklist/global
Get global blacklists for inbound.
GET
/api/wblist/outbound/whitelist/global
Get global whitelists for outbound.
GET
/api/wblist/outbound/blacklist/global
Get global whitelists for outbound.
GET
/api/wblist/inbound/whitelist/<domain>
Get per-domain whitelists for inbound.
GET
/api/wblist/inbound/blacklist/<domain>
Get per-domain blacklists for inbound.
GET
/api/wblist/outbound/whitelist/<domain>
Get per-domain whitelists for outbound.
GET
/api/wblist/outbound/blacklist/<domain>
Get per-domain whitelists for outbound.
GET
/api/wblist/inbound/whitelist/<mail>
Get per-user whitelists for inbound.
GET
/api/wblist/inbound/blacklist/<mail>
Get per-user blacklists for inbound.
GET
/api/wblist/outbound/whitelist/<mail>
Get per-user whitelists for outbound.
GET
/api/wblist/outbound/blacklist/<mail>
Get per-user whitelists for outbound.
POST
/api/wblist/inbound/whitelist/global
Add new global whitelists for inbound.
Parameters
POST
/api/wblist/inbound/blacklist/global
Add new global blacklists for inbound.
Parameters
POST
/api/wblist/outbound/whitelist/global
Add new global whitelists for outbound.
Parameters
POST
/api/wblist/outbound/blacklist/global
Add new global whitelists for outbound.
Parameters
POST
/api/wblist/inbound/whitelist/<domain>
Add new per-domain whitelists for inbound.
Parameters
POST
/api/wblist/inbound/blacklist/<domain>
Add new per-domain blacklists for inbound.
Parameters
POST
/api/wblist/outbound/whitelist/<domain>
Add new per-domain whitelists for outbound.
Parameters
POST
/api/wblist/outbound/blacklist/<domain>
Add new per-domain whitelists for outbound.
Parameters
POST
/api/wblist/inbound/whitelist/<mail>
Add new per-user whitelists for inbound.
Parameters
POST
/api/wblist/inbound/blacklist/<mail>
Add new per-user blacklists for inbound.
Parameters
POST
/api/wblist/outbound/whitelist/<mail>
Add new per-user whitelists for outbound.
Parameters
POST
/api/wblist/outbound/blacklist/<mail>
Add new per-user whitelists for outbound.
Parameters
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. Multiple addresses must be separated by comma. |
addresses=user1@domain.com,192.168.1.10 |
PUT
/api/wblist/inbound/whitelist/global
Delete given global whitelists for inbound.
Parameters
PUT
/api/wblist/inbound/blacklist/global
Delete given existing global blacklists for inbound.
Parameters
PUT
/api/wblist/outbound/whitelist/global
Delete given existing global whitelists for outbound.
Parameters
PUT
/api/wblist/outbound/blacklist/global
Delete given existing global whitelists for outbound.
Parameters
PUT
/api/wblist/inbound/whitelist/<domain>
Delete given per-domain whitelists for inbound.
Parameters
PUT
/api/wblist/inbound/blacklist/<domain>
Delete given per-domain blacklists for inbound.
Parameters
PUT
/api/wblist/outbound/whitelist/<domain>
Delete given per-domain whitelists for outbound.
Parameters
PUT
/api/wblist/outbound/blacklist/<domain>
Delete given per-domain whitelists for outbound.
Parameters
PUT
/api/wblist/inbound/whitelist/<mail>
Delete given per-user whitelists for inbound.
Parameters
PUT
/api/wblist/inbound/blacklist/<mail>
Delete given per-user blacklists for inbound.
Parameters
PUT
/api/wblist/outbound/whitelist/<mail>
Delete given per-user whitelists for outbound.
Parameters
PUT
/api/wblist/outbound/blacklist/<mail>
Delete given per-user whitelists for outbound.
Parameters
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. Multiple addresses must be separated by comma. |
addresses=user1@domain.com,192.168.1.10 |
DELETE
/api/wblist/inbound/whitelist/global
Delete all existing global whitelists for inbound.
DELETE
/api/wblist/inbound/blacklist/global
Delete all existing global blacklists for inbound.
DELETE
/api/wblist/outbound/whitelist/global
Delete all existing global whitelists for outbound.
DELETE
/api/wblist/outbound/blacklist/global
Delete all existing global whitelists for outbound.
DELETE
/api/wblist/inbound/whitelist/<domain>
Delete all per-domain global whitelists for inbound.
DELETE
/api/wblist/inbound/blacklist/<domain>
Delete all per-domain global blacklists for inbound.
DELETE
/api/wblist/outbound/whitelist/<domain>
Delete all per-domain existing global whitelists for outbound.
DELETE
/api/wblist/outbound/blacklist/<domain>
Delete all per-domain existing global whitelists for outbound.
DELETE
/api/wblist/inbound/whitelist/<mail>
Delete all per-user existing global whitelists for inbound.
DELETE
/api/wblist/inbound/blacklist/<mail>
Delete all per-user existing global blacklists for inbound.
DELETE
/api/wblist/outbound/whitelist/<mail>
Delete all per-user existing global whitelists for outbound.
DELETE
/api/wblist/outbound/blacklist/<mail>
Delete all per-user existing global whitelists for outbound.
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.
Parameter | Summary | Sample Usage |
---|---|---|
status |
Explicitly 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
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 |
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.
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 |
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