iredmail-doc/html/iredadmin-pro.restful.api.html

842 lines
31 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
2016-04-18 09:34:43 -05:00
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>iRedAdmin-Pro: RESTful API</title>
<link rel="stylesheet" type="text/css" href="./css/markdown.css" />
</head>
<body>
<div id="navigation">
<a href="/index.html" target="_blank">
<img alt="iRedMail web site"
src="./images/logo-iredmail.png"
style="vertical-align: middle; height: 30px;"
/>&nbsp;
<span>iRedMail</span>
</a>
2016-04-18 09:34:43 -05:00
&nbsp;&nbsp;//&nbsp;&nbsp;<a href="./index.html">Document Index</a></div><h1 id="iredadmin-pro-restful-api">iRedAdmin-Pro: RESTful API</h1>
2016-04-20 05:23:37 -05:00
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>If you need an API which has not yet been implemented, don't hesitate to
<a href="../contact.html">contact us</a>.</p>
</div>
2016-04-18 09:34:43 -05:00
<div class="toc">
<ul>
<li><a href="#iredadmin-pro-restful-api">iRedAdmin-Pro: RESTful API</a><ul>
<li><a href="#changelog">ChangeLog</a></li>
2016-04-18 09:34:43 -05:00
<li><a href="#summary">Summary</a></li>
<li><a href="#requirements">Requirements</a></li>
<li><a href="#enable-restful-api">Enable RESTful API</a></li>
2016-05-14 11:18:14 -05:00
<li><a href="#sample-code-to-interact-with-iredadmin-pro-restful-api">Sample code to interact with iRedAdmin-Pro RESTful API</a></li>
2016-04-18 09:34:43 -05:00
<li><a href="#apis">APIs</a><ul>
<li><a href="#domain">Domain</a></li>
<li><a href="#mail-user">Mail User</a></li>
2016-04-20 02:11:50 -05:00
<li><a href="#mailing-list">Mailing List</a></li>
2016-04-18 09:34:43 -05:00
<li><a href="#mail-alias">Mail Alias</a></li>
2016-04-20 05:23:37 -05:00
<li><a href="#throttling">Throttling</a></li>
2016-05-23 19:40:23 -05:00
<li><a href="#export-accounts">Export Accounts</a><ul>
<li><a href="#ldif-ldap-backend-only">LDIF (LDAP backend only)</a></li>
</ul>
</li>
2016-04-18 09:34:43 -05:00
</ul>
</li>
</ul>
</li>
</ul>
</div>
<h3 id="changelog">ChangeLog</h3>
<ul>
<li>Variable names in returned JSON data has been changed to:
<code>{'_success': ..., '_msg': ...}</code> (was <code>{'success': ..., 'msg': ...}</code>).</li>
2016-06-24 22:39:58 -05:00
<li>Some variable names have been renamed:<ul>
<li><code>cn</code> -&gt; <code>name</code>.</li>
<li><code>mailQuota</code> -&gt; <code>quota</code></li>
<li><code>preferredLanguage</code> -&gt; <code>language</code></li>
2016-06-24 22:39:58 -05:00
</ul>
</li>
</ul>
2016-04-18 09:34:43 -05:00
<h2 id="summary">Summary</h2>
<p>iRedAdmin-Pro RESTful API will return message in JSON format.</p>
<ul>
<li>If operation succeed:<ul>
<li>For <code>POST</code>, <code>DELETE</code>, <code>PUT</code> actions, it returns JSON data: <code>{'_success': true}</code>.</li>
<li>For <code>GET</code> action, it returns JSON data: <code>{'_success': true, '_data': &lt;program_output&gt;}</code>.</li>
</ul>
</li>
<li>If operation failed, it returns JSON data: <code>{'_success': false, '_msg': '&lt;error_reason&gt;'}</code>.</li>
2016-04-18 09:34:43 -05:00
</ul>
<h2 id="requirements">Requirements</h2>
<ul>
<li>At least iRedAdmin-Pro-SQL-2.4.0 or iRedAdmin-Pro-LDAP-2.6.0. Earlier releases
didn't offer RESTful API.</li>
</ul>
<h2 id="enable-restful-api">Enable RESTful API</h2>
<p>RESTful API is disabled by default, to enable it, please add setting below in
iRedAdmin-Pro config file <code>settings.py</code>:</p>
<pre><code>ENABLE_RESTFUL_API = True
</code></pre>
<p>To restrict API access to few IP addresses, please also add settings below in
iRedAdmin-Pro config file:</p>
<pre><code># Enable restriction
RESTRICT_API_ACCESS = True
# List all IP addresses of allowed client for API access.
RESTFUL_API_CLIENTS = ['172.16.244.1', ...]
</code></pre>
<p>Restarting Apache or uwsgi (if you're running Nginx) is required.</p>
2016-05-14 11:18:14 -05:00
<h2 id="sample-code-to-interact-with-iredadmin-pro-restful-api">Sample code to interact with iRedAdmin-Pro RESTful API</h2>
<ul>
<li><a href="./iredadmin-pro.restful.api.curl.html">iRedAdmin-Pro RESTful API (interact with <code>curl</code>)</a></li>
<li><a href="./iredadmin-pro.restful.api.python.html">iRedAdmin-Pro RESTful API (interact with Python)</a></li>
</ul>
2016-04-18 09:34:43 -05:00
<h2 id="apis">APIs</h2>
<p>Notes:</p>
<ul>
2016-05-14 11:18:14 -05:00
<li>Parameter name with a <code>*</code> mark means the parameter is required, otherwise is optional.</li>
2016-04-18 09:34:43 -05:00
<li>replace <code>&lt;domain&gt;</code> in URL by the real domain name.</li>
<li>replace <code>&lt;mail&gt;</code> in URL by the real email address.</li>
</ul>
2016-05-14 11:18:14 -05:00
<p><button type="button" class="toggle_all">Expand/Collapse All API Parameters</button></p>
<h3 class="toggle" id="domain">Domain</h3>
<div class="admonition api">
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/domain/&lt;domain&gt;</code> <code class="comment">Get profile of an existing domain</code> <code class="upcoming">upcoming</code></p>
</div>
2016-05-14 11:18:14 -05:00
<div class="admonition api">
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/domain/&lt;domain&gt;</code> <code class="comment">Create a new domain</code> <code class="has_params">Parameters</code></p>
<div class="params params_domain">
2016-04-18 09:34:43 -05:00
<table>
<thead>
<tr>
<th>Parameter Name</th>
<th>Summary</th>
<th>Sample Usage</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>name</code></td>
2016-05-14 11:18:14 -05:00
<td>Short description of this domain name. e.g. company name</td>
<td><code>name=Google Inc</code></td>
2016-04-18 09:34:43 -05:00
</tr>
<tr>
<td><code>quota</code></td>
2016-05-19 06:41:31 -05:00
<td>Per-domain mailbox quota, in MB.</td>
2016-05-14 11:18:14 -05:00
<td><code>quota=2048</code></td>
2016-04-18 09:34:43 -05:00
</tr>
<tr>
2016-05-14 11:18:14 -05:00
<td><code>language</code></td>
<td>Default preferred language for newly created mail user</td>
2016-05-23 19:40:23 -05:00
<td><code>language=en_US</code></td>
2016-04-18 09:34:43 -05:00
</tr>
<tr>
<td><code>transport</code></td>
<td>Transport program</td>
<td><code>transport=dovecot</code></td>
</tr>
<tr>
2016-04-18 09:34:43 -05:00
<td><code>defaultQuota</code></td>
2016-05-19 06:41:31 -05:00
<td>Default per-user mailbox quota for newly created user, in MB.</td>
2016-04-18 09:34:43 -05:00
<td><code>defaultQuota=1024</code></td>
</tr>
<tr>
<td><code>maxUserQuota</code></td>
2016-05-19 06:41:31 -05:00
<td>Max mailbox quota of a mail user, in MB.</td>
2016-04-18 09:34:43 -05:00
<td><code>maxUserQuota=2048</code></td>
</tr>
<tr>
<td><code>numberOfUsers</code></td>
<td>Max number of mail user accounts</td>
<td><code>numberOfUsers=20</code></td>
</tr>
<tr>
<td><code>numberOfAliases</code></td>
<td>Max number of mail alias accounts</td>
<td><code>numberOfAliases=30</code></td>
</tr>
<tr>
2016-05-14 11:18:14 -05:00
<td><code>numberOfLists</code></td>
2016-10-10 11:12:16 -05:00
<td>Max number of mailing list accounts (Available in LDAP backends)</td>
2016-05-14 11:18:14 -05:00
<td><code>numberOfLists=40</code></td>
2016-04-18 09:34:43 -05:00
</tr>
<tr>
<td><code>senderBcc</code></td>
<td>Per-domain sender bcc</td>
<td><code>senderBcc=user@domain.com</code></td>
</tr>
<tr>
<td><code>recipientBcc</code></td>
<td>Per-domain recipient bcc</td>
<td><code>recipientBcc=user@domain.com</code></td>
</tr>
2016-04-18 09:34:43 -05:00
</tbody>
</table>
2016-05-14 11:18:14 -05:00
</div>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="delete">DELETE</code> <code class="url">/api/domain/&lt;domain&gt;</code> <code class="comment">Delete an existing domain</code></p>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="put">PUT</code> <code class="url">/api/domain/&lt;domain&gt;</code> <code class="comment">Update profile of an existing domain</code> <code class="upcoming">upcoming</code> <code class="has_params">Parameters</code></p>
<div class="params params_domain">
2016-05-14 11:18:14 -05:00
<table>
<thead>
<tr>
<th>Parameter Name</th>
<th>Summary</th>
<th>Sample Usage</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>name</code></td>
<td>Short description of this domain name. e.g. company name</td>
<td><code>name=Google Inc</code></td>
</tr>
<tr>
<td><code>accountStatus</code></td>
<td>Enable or disable domain. Possible values: <code>active</code>, <code>disabled</code>.</td>
<td><code>accountStatus=active</code></td>
</tr>
<tr>
<td><code>quota</code></td>
<td>Mailbox quota for whole domain, in MB.</td>
<td><code>quota=2048</code></td>
</tr>
<tr>
<td><code>language</code></td>
<td>Default preferred language for newly created mail user</td>
<td><code>language=en_US</code></td>
</tr>
<tr>
<td><code>transport</code></td>
<td>Transport program</td>
<td><code>transport=dovecot</code></td>
</tr>
<tr>
<td><code>minPasswordLength</code></td>
<td>Minimal password length</td>
<td><code>minPasswordLength=8</code></td>
</tr>
<tr>
<td><code>maxPasswordLength</code></td>
<td>Maximum password length</td>
<td><code>minPasswordLength=20</code></td>
</tr>
<tr>
<td><code>defaultQuota</code></td>
<td>Default per-user mailbox quota for newly created user</td>
<td><code>defaultQuota=1024</code></td>
</tr>
<tr>
<td><code>maxUserQuota</code></td>
<td>Max mailbox quota of a mail user</td>
<td><code>maxUserQuota=2048</code></td>
</tr>
<tr>
<td><code>numberOfUsers</code></td>
<td>Max number of mail user accounts</td>
<td><code>numberOfUsers=20</code></td>
</tr>
<tr>
<td><code>numberOfAliases</code></td>
<td>Max number of mail alias accounts</td>
<td><code>numberOfAliases=30</code></td>
</tr>
<tr>
<td><code>senderBcc</code></td>
<td>Per-domain sender bcc address</td>
<td><code>senderBcc=user@domain.com</code></td>
</tr>
<tr>
<td><code>recipientBcc</code></td>
<td>Per-domain recipient bcc address</td>
<td><code>recipientBcc=user@domain.com</code></td>
</tr>
<tr>
2016-10-21 10:17:15 -05:00
<td><code>is_backupmx</code></td>
<td>Mark domain as Backup MX. Must be used with parameter <code>primarymx</code>. Conflicts with parameter <code>transport</code>.</td>
<td><code>is_backupmx=yes</code> (or <code>no</code>)</td>
</tr>
<tr>
<td><code>primarymx</code></td>
2016-10-21 10:17:15 -05:00
<td>Hostname or IP address of primary MX, smtp port number is optional. Must be used with parameter <code>is_backupmx</code>. Conflicts with parameter <code>transport</code>.</td>
<td><code>primarymx=202.96.134.133</code>, <code>primarymx=[mail.iredmail.org]:25</code></td>
</tr>
<tr>
<td><code>catchall</code></td>
<td>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.</td>
<td><code>catchall=user@domain.com,user2@domain.com</code> or <code>catchall=</code> (disable catch-all)</td>
</tr>
</tbody>
</table>
</div>
2016-05-14 11:18:14 -05:00
</div>
<div class="admonition api">
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/domain/services/&lt;domain&gt;</code> <code class="comment">Get/List all enabled per-domain services</code> <code class="upcoming">upcoming</code></p>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="put">PUT</code> <code class="url">/api/domain/services/&lt;domain&gt;</code> <code class="comment">Manage enabled per-domain services</code> <code class="upcoming">upcoming</code> <code class="has_params">Parameters</code></p>
<div class="params params_domain_services">
<table>
<thead>
<tr>
<th>Parameter Name</th>
<th>Summary</th>
<th>Sample Usage</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>enableService</code></td>
<td>Enable new services. Multiple services must be separated by comma.</td>
<td><code>enableService=sogo,vpn,xmpp</code></td>
</tr>
<tr>
<td><code>disableService</code></td>
<td>Disable existing services. Multiple services must be separated by comma.</td>
<td><code>disableService=sogo,vpn,xmpp</code></td>
</tr>
<tr>
<td><code>removeAllServices</code></td>
<td>Disable all services (including mail service)</td>
<td><code>removeAllServices=</code> (empty value)</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="put">PUT</code> <code class="url">/api/domain/admins/&lt;domain&gt;</code> <code class="comment">Manage normal domain admins.</code> <code class="upcoming">upcoming</code> <code class="has_params">Parameters</code></p>
<div class="params params_domain_admins">
<div class="admonition attention">
<p class="admonition-title">Attention</p>
<p>Normal domain admin can only promote mail users under managed domains
to be a domain admin.</p>
</div>
<table>
<thead>
<tr>
<th>Parameter Name</th>
<th>Summary</th>
<th>Sample Usage</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>addAdmin</code></td>
<td>Add new domain admins. Multiple services must be separated by comma.</td>
<td><code>addAdmin=one@domain.com,two@domain.com</code></td>
</tr>
<tr>
<td><code>removeAdmin</code></td>
<td>Remove existing domain admins. Multiple services must be separated by comma.</td>
<td><code>removeAdmin=one@domain.com,two@domain.com</code></td>
</tr>
<tr>
<td><code>removeAllAdmins</code></td>
<td>Remove all existing domain admins.</td>
<td><code>removeAllAdmins=</code> (empty value)</td>
</tr>
</tbody>
</table>
</div>
</div>
<h3 class="toggle" id="mail-user">Mail User</h3>
<div class="admonition api">
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/user/&lt;mail&gt;</code> <code class="comment">Get profile of an existing mail user</code> <code class="upcoming">upcoming</code></p>
</div>
2016-05-14 11:18:14 -05:00
<div class="admonition api">
2016-05-23 19:40:23 -05:00
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/user/&lt;mail&gt;</code> <code class="comment">Create a new mail user</code> <code class="has_params">Parameters</code></p>
<div class="params params_user">
<table>
<thead>
<tr>
<th>Parameter Name</th>
<th>Summary</th>
<th>Sample Usage</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>name</code></td>
2016-05-23 19:40:23 -05:00
<td>Display name</td>
<td><code>name=My New Name</code></td>
2016-05-23 19:40:23 -05:00
</tr>
<tr>
<td><code>password</code></td>
<td>Password</td>
<td><code>password=AsTr0ng@</code></td>
</tr>
<tr>
<td><code>language</code></td>
<td>Preferred language of iRedAdmin web UI</td>
2016-05-23 19:40:23 -05:00
<td><code>language=en_US</code></td>
</tr>
<tr>
<td><code>quota</code></td>
<td>Mailbox quota (in MB)</td>
<td><code>quota=1024</code></td>
</tr>
</tbody>
</table>
</div>
2016-05-14 11:18:14 -05:00
</div>
<div class="admonition api">
<p class="admonition-title"><code class="delete">DELETE</code> <code class="url">/api/user/&lt;mail&gt;</code> <code class="comment">Delete an existing mail user</code></p>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="put">PUT</code> <code class="url">/api/user/&lt;mail&gt;</code> <code class="comment">Update profile of an existing mail user</code> <code class="has_params">Parameters</code> </p>
<div class="params params_user">
2016-04-18 09:34:43 -05:00
<table>
<thead>
<tr>
<th>Parameter Name</th>
<th>Summary</th>
<th>Sample Usage</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>name</code></td>
2016-05-14 11:18:14 -05:00
<td>Display name</td>
<td><code>name=My New Name</code></td>
2016-04-18 09:34:43 -05:00
</tr>
<tr>
<td><code>password</code></td>
<td>Password</td>
<td><code>password=u0tBF82cIV@vi8Gme</code></td>
</tr>
<tr>
<td><code>quota</code></td>
<td>Mailbox quota (in MB)</td>
<td><code>quota=1024</code></td>
</tr>
<tr>
<td><code>accountStatus</code></td>
<td>Enable or disable user. Possible values: <code>active</code>, <code>disabled</code>.</td>
<td><code>accountStatus=active</code></td>
</tr>
<tr>
2016-05-14 11:18:14 -05:00
<td><code>language</code></td>
<td>Preferred language of iRedAdmin web UI</td>
2016-05-23 19:40:23 -05:00
<td><code>language=en_US</code></td>
2016-04-18 09:34:43 -05:00
</tr>
2016-04-20 02:11:50 -05:00
<tr>
<td><code>employeeid</code></td>
<td>User ID (or Employee Number)</td>
<td><code>employeeid=My Employee ID</code></td>
</tr>
<tr>
2016-04-20 02:11:50 -05:00
<td><code>transport</code></td>
<td>Transport program</td>
<td><code>transport=dovecot</code></td>
</tr>
<tr>
<td><code>forwarding</code></td>
<td>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.</td>
<td><code>forwarding=user1@domain.com,user2@domain.com,user3@domain.com</code></td>
</tr>
<tr>
<td><code>aliases</code></td>
<td>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 <code>addAlias</code> and <code>removeAlias</code>.</td>
<td><code>aliases=user1@domain.com,user2@domain.com,user3@domain.com</code></td>
</tr>
<tr>
<td><code>addAlias</code></td>
<td>Add new per-user alias addresses. Multiple addresses must be separated by comma. Conflicts with parameter <code>aliases</code>.</td>
<td><code>aliases=user1@domain.com,user2@domain.com,user3@domain.com</code></td>
</tr>
<tr>
<td><code>removeAlias</code></td>
<td>Remove existing per-user alias addresses. Multiple addresses must be separated by comma. Conflicts with parameter <code>aliases</code>.</td>
<td><code>aliases=user1@domain.com,user2@domain.com,user3@domain.com</code></td>
</tr>
2016-04-18 09:34:43 -05:00
</tbody>
</table>
2016-04-20 02:11:50 -05:00
</div>
2016-05-14 11:18:14 -05:00
</div>
<div class="admonition api">
<p class="admonition-title"><code class="put">POST</code> <code class="url">/api/user/&lt;mail&gt;/change_email/&lt;new_mail&gt;</code> <code class="comment">Change user's email address (from '&lt;mail&gt;' to '&lt;new_mail&gt;')</code></p>
2016-05-14 11:18:14 -05:00
</div>
<div class="admonition api">
<p class="admonition-title"><code class="put">PUT</code> <code class="url">/api/users/&lt;domain&gt;</code> <code class="comment">Update profiles of all users under domain</code> <code class="upcoming">upcoming</code> <code class="has_params">Parameters</code></p>
<div class="params">
2016-04-18 09:34:43 -05:00
<table>
<thead>
<tr>
<th>Parameter Name</th>
2016-05-14 11:18:14 -05:00
<th>Comment</th>
2016-04-18 09:34:43 -05:00
</tr>
</thead>
<tbody>
<tr>
<td><code>accountStatus</code></td>
2016-05-14 11:18:14 -05:00
<td>Account status. Possible value is: active, disabled.</td>
2016-04-18 09:34:43 -05:00
</tr>
2016-04-20 02:11:50 -05:00
<tr>
<td><code>password</code></td>
<td>Password</td>
2016-05-14 11:18:14 -05:00
</tr>
<tr>
<td><code>language</code></td>
<td>Preferred language of iRedAdmin web UI</td>
2016-04-18 09:34:43 -05:00
</tr>
<tr>
<td><code>transport</code></td>
<td>Per-user transport</td>
2016-04-18 09:34:43 -05:00
</tr>
</tbody>
</table>
2016-05-14 11:18:14 -05:00
</div>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/verify_password/user/&lt;mail&gt;</code> <code class="comment">Verify given (plain) password against the one stored in SQL/LDAP</code> <code class="upcoming">upcoming</code> <code class="has_params">Parameters</code> </p>
<div class="params params_user">
<table>
<thead>
<tr>
<th>Parameter Name</th>
<th>Summary</th>
<th>Sample Usage</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>password</code></td>
<td>Plain password</td>
<td><code>password=u0tBF82cIV@vi8Gme</code></td>
</tr>
</tbody>
</table>
</div>
2016-05-14 11:18:14 -05:00
</div>
<h3 class="toggle" id="mailing-list">Mailing List</h3>
<div class="admonition attention">
<p class="admonition-title">Attention</p>
<p>Mailing list is only available in OpenLDAP backend. For SQL backends,
please use mail alias account as mailing list.</p>
</div>
<div class="admonition api">
2016-10-13 12:46:10 -05:00
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/maillist/&lt;mail&gt;</code> <code class="comment">Get profile of an existing mailing list account</code> <code class="upcoming">upcoming</code></p>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/maillist/&lt;mail&gt;</code> <code class="comment">Create a new mailing list</code> <code class="upcoming">upcoming</code> <code class="has_params">Parameters</code></p>
<div class="params">
<table>
<thead>
<tr>
<th>Parameter Name</th>
<th>Summary</th>
<th>Sample Usage</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>name</code></td>
<td>Display name</td>
<td><code>name=My List Name</code></td>
</tr>
<tr>
<td><code>accessPolicy</code></td>
<td>Defines who can send email to this mail alias account</td>
<td><code>accessPolicy=public</code></td>
</tr>
<tr>
<td><code>members</code></td>
<td>Members of mailing list. Multiple members must be separated by comma.</td>
<td><code>members=user1@domain.com,user2@domain.com</code></td>
</tr>
</tbody>
</table>
</div>
2016-05-14 11:18:14 -05:00
</div>
<div class="admonition api">
<p class="admonition-title"><code class="delete">DELETE</code> <code class="url">/api/maillist/&lt;mail&gt;</code> <code class="comment">Delete an existing mailing list</code></p>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="put">PUT</code> <code class="url">/api/maillist/&lt;mail&gt;</code> <code class="comment">Update profile of an existing mailing list</code> <code class="has_params">Parameters</code></p>
2016-05-19 06:41:31 -05:00
<div class="params">
2016-05-14 11:18:14 -05:00
2016-04-18 09:34:43 -05:00
<table>
<thead>
<tr>
<th>Parameter Name</th>
<th>Summary</th>
<th>Sample Usage</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>name</code></td>
2016-04-18 09:34:43 -05:00
<td>display name</td>
<td><code>name=My List Name</code></td>
2016-04-18 09:34:43 -05:00
</tr>
2016-04-20 02:11:50 -05:00
<tr>
<td><code>accessPolicy</code></td>
2016-05-14 11:18:14 -05:00
<td>Defines who can send email to this mailing list</td>
2016-04-20 02:11:50 -05:00
<td><code>accessPolicy=public</code></td>
</tr>
<tr>
<td><code>members</code></td>
<td>Members of mailing list. Multiple members must be separated by comma. Conflict with parameter <code>addMember</code> and <code>removeMember</code>.</td>
<td><code>members=user1@domain.com,user2@domain.com</code></td>
</tr>
<tr>
<td><code>addMember</code></td>
<td>Add new members of mailing list. Multiple members must be separated by comma. Conflict with parameter <code>members</code>.</td>
<td><code>addMember=user1@domain.com,user2@domain.com</code></td>
</tr>
<tr>
<td><code>removeMember</code></td>
<td>Remove existing members of mailing list. Multiple members must be separated by comma. Conflict with parameter <code>members</code>.</td>
<td><code>removeMember=user1@domain.com,user2@domain.com</code></td>
</tr>
2016-04-18 09:34:43 -05:00
</tbody>
</table>
2016-05-14 11:18:14 -05:00
</div>
</div>
<h3 class="toggle" id="mail-alias">Mail Alias</h3>
<div class="admonition api">
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/alias/&lt;mail&gt;</code> <code class="comment">Get profile of an existing mail alias</code> <code class="upcoming">upcoming</code></p>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/alias/&lt;mail&gt;</code> <code class="comment">Create a new mail alias</code> <code class="upcoming">upcoming</code> <code class="has_params">Parameters</code></p>
<div class="params">
<table>
<thead>
<tr>
<th>Parameter Name</th>
<th>Summary</th>
<th>Sample Usage</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>name</code></td>
2016-10-10 02:54:52 -05:00
<td>Display name</td>
<td><code>name=My List Name</code></td>
</tr>
<tr>
<td><code>accessPolicy</code></td>
<td>Defines who can send email to this mail alias account</td>
<td><code>accessPolicy=public</code></td>
</tr>
2016-10-10 02:54:52 -05:00
<tr>
<td><code>members</code></td>
<td>Members of mail alias. Multiple members must be separated by comma.</td>
<td><code>members=user1@domain.com,user2@domain.com</code></td>
</tr>
</tbody>
</table>
2016-06-24 22:39:58 -05:00
<div class="admonition attention">
<p class="admonition-title">Attention</p>
<p><code>accessPolicy</code> for mail alias account is only available for SQL backends.</p>
</div>
</div>
2016-05-14 11:18:14 -05:00
</div>
<div class="admonition api">
<p class="admonition-title"><code class="delete">DELETE</code> <code class="url">/api/alias/&lt;mail&gt;</code> <code class="comment">Delete an existing mail alias</code></p>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="put">PUT</code> <code class="url">/api/alias/&lt;mail&gt;</code> <code class="comment">Update profile of an existing mail alias</code> <code class="has_params">Parameters</code></p>
2016-05-19 06:41:31 -05:00
<div class="params">
2016-05-14 11:18:14 -05:00
2016-06-24 22:39:58 -05:00
<div class="admonition attention">
<p class="admonition-title">Attention</p>
<p><code>accessPolicy</code> for mail alias account is only available for SQL backends.</p>
</div>
2016-04-20 05:23:37 -05:00
<table>
<thead>
<tr>
2016-05-14 11:18:14 -05:00
<th>Parameter Name</th>
2016-04-20 05:23:37 -05:00
<th>Summary</th>
2016-05-14 11:18:14 -05:00
<th>Sample Usage</th>
2016-04-20 05:23:37 -05:00
</tr>
</thead>
<tbody>
<tr>
<td><code>name</code></td>
2016-10-10 11:12:16 -05:00
<td>Display name</td>
<td><code>name=My List Name</code></td>
</tr>
<tr>
2016-05-14 11:18:14 -05:00
<td><code>accessPolicy</code></td>
<td>Defines who can send email to this mail alias account</td>
<td><code>accessPolicy=public</code></td>
</tr>
2016-10-10 11:12:16 -05:00
<tr>
<td><code>members</code></td>
<td>Members of mail alias. Multiple members must be separated by comma. Conflict with parameter <code>addMember</code> and <code>removeMember</code>.</td>
2016-10-10 11:12:16 -05:00
<td><code>members=user1@domain.com,user2@domain.com</code></td>
</tr>
<tr>
<td><code>addMember</code></td>
<td>Add new members of mail alias. Multiple members must be separated by comma. Conflict with parameter <code>members</code>.</td>
<td><code>addMember=user1@domain.com,user2@domain.com</code></td>
</tr>
<tr>
<td><code>removeMember</code></td>
<td>Remove existing members of mail alias. Multiple members must be separated by comma. Conflict with parameter <code>members</code>.</td>
<td><code>removeMember=user1@domain.com,user2@domain.com</code></td>
</tr>
2016-04-20 05:23:37 -05:00
</tbody>
</table>
2016-05-14 11:18:14 -05:00
</div>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="put">POST</code> <code class="url">/api/alias/&lt;mail&gt;/change_email/&lt;new_mail&gt;</code> <code class="comment">Change email address of alias account (from '&lt;mail&gt;' to '&lt;new_mail&gt;')</code></p>
2016-05-14 11:18:14 -05:00
</div>
<h3 class="toggle" id="throttling">Throttling</h3>
<div class="admonition api">
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/throttle/global/inbound</code> <code class="comment">Get global inbound throttle settings</code></p>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/throttle/global/inbound</code> <code class="comment">Set global inbound throttle settings</code> <code class="has_params_throttle">Parameters</code></p>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/throttle/global/outbound</code> <code class="comment">Get global outbound throttle settings</code></p>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/throttle/global/outbound</code> <code class="comment">Set global inbound throttle settings</code> <code class="has_params_throttle">Parameters</code></p>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/throttle/&lt;domain&gt;/inbound</code> <code class="comment">Get domain inbound throttle settings</code></p>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/throttle/&lt;domain&gt;/inbound</code> <code class="comment">Set domain inbound throttle settings</code> <code class="has_params_throttle">Parameters</code></p>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/throttle/&lt;domain&gt;/outbound</code> <code class="comment">Get domain outbound throttle settings</code></p>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/throttle/&lt;domain&gt;/outbound</code> <code class="comment">Set domain outbound throttle settings</code> <code class="has_params_throttle">Parameters</code></p>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/throttle/&lt;mail&gt;/inbound</code> <code class="comment">Get user inbound throttle settings</code></p>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/throttle/&lt;mail&gt;/inbound</code> <code class="comment">Set user inbound throttle settings</code> <code class="has_params_throttle">Parameters</code></p>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/throttle/&lt;mail&gt;/outbound</code> <code class="comment">Get user outbound throttle settings</code></p>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="post">POST</code> <code class="url">/api/throttle/&lt;mail&gt;/outbound</code> <code class="comment">Set user outbound throttle settings</code> <code class="has_params_throttle">Parameters</code></p>
<div class="params params_throttle">
<p>Parameters available for global, per-domain, per-user throttle settings.</p>
2016-04-20 05:23:37 -05:00
<table>
<thead>
<tr>
<th>Parameter Name</th>
<th>Summary</th>
<th>Sample Usage</th>
</tr>
</thead>
<tbody>
<tr>
2016-05-14 11:18:14 -05:00
<td><code>period</code> *</td>
<td>Period of time, in seconds</td>
2016-04-20 05:23:37 -05:00
<td><code>period=3600</code> (one hour)</td>
</tr>
<tr>
<td><code>msg_size</code></td>
2016-05-14 11:18:14 -05:00
<td>Max size of single email, in bytes</td>
2016-04-20 05:23:37 -05:00
<td><code>msg_size=10485760</code> (10 MB)</td>
</tr>
<tr>
<td><code>max_msgs</code></td>
<td>Number of max inbound emails</td>
<td><code>max_msgs=20</code> (up to 20 messages)</td>
</tr>
<tr>
<td><code>max_quota</code></td>
2016-05-14 11:18:14 -05:00
<td>Cumulative size of inbound or outbound emails, in bytes</td>
2016-04-20 05:23:37 -05:00
<td><code>max_quota=1048576000</code> (1 GB)</td>
</tr>
</tbody>
</table>
2016-05-14 11:18:14 -05:00
</div>
2016-05-23 19:40:23 -05:00
</div>
<h3 class="toggle" id="export-accounts">Export Accounts</h3>
<h4 class="toggle" id="ldif-ldap-backend-only">LDIF (LDAP backend only)</h4>
<div class="admonition api">
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/ldif/domain/&lt;domain&gt;</code> <code class="comment">Export domain to LDIF</code> <code class="upcoming">upcoming</code></p>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/ldif/catchall/&lt;domain&gt;</code> <code class="comment">Export per-domain catch-all account to LDIF</code> <code class="upcoming">upcoming</code></p>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/ldif/admin/&lt;mail&gt;</code> <code class="comment">Export (separated) domain admin to LDIF</code> <code class="upcoming">upcoming</code></p>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/ldif/user/&lt;mail&gt;</code> <code class="comment">Export mail user to LDIF</code> <code class="upcoming">upcoming</code></p>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/ldif/maillist/&lt;mail&gt;</code> <code class="comment">Export mailing list account to LDIF</code> <code class="upcoming">upcoming</code></p>
</div>
<div class="admonition api">
<p class="admonition-title"><code class="get">GET</code> <code class="url">/api/ldif/alias/&lt;mail&gt;</code> <code class="comment">Export mail alias account to LDIF</code> <code class="upcoming">upcoming</code></p>
2016-05-14 11:18:14 -05:00
</div>
<script src="./js/jquery-1.12.3.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
/* Collapse all parameters by default */
$('.params').hide();
/* Expand/Collapse ALL parameters */
$('.toggle_all').bind('click', function(){$('.params').toggle();});
/* Expand/Collapse parameters under same title/category */
$('.toggle').on('click', function() {
$(this).nextUntil('.toggle').children('.params').toggle();
});
/* Expand/Collapse parameter for current API */
$('.has_params').on('click', function() {
$(this).parent().nextUntil('.has_params').toggle();
});
/* Expand/Collapse specific parameters */
$('.has_params_throttle').bind('click', function(){$('.params_throttle').toggle();});
});
</script><div class="footer">
<p style="text-align: center; color: grey;">All documents are available in <a href="https://bitbucket.org/zhb/iredmail-docs/src">BitBucket repository</a>, and published under <a href="http://creativecommons.org/licenses/by-nd/3.0/us/" target="_blank">Creative Commons</a> license. You can <a href="https://bitbucket.org/zhb/iredmail-docs/get/tip.tar.bz2">download the latest version</a> for offline reading. If you found something wrong, please do <a href="http://www.iredmail.org/contact.html">contact us</a> to fix it.</p>
</div>
<script type="text/javascript">
2016-04-18 09:34:43 -05:00
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-3293801-21', 'auto');
ga('send', 'pageview');
</script>
</body></html>