mirror of
https://github.com/mailcow/mailcow-dockerized.git
synced 2024-12-23 02:04:46 +02:00
f68a28fa2b
[Web][Rspamd] domain wide footer improvements and custom mailbox attributes
5890 lines
186 KiB
YAML
5890 lines
186 KiB
YAML
openapi: 3.1.0
|
|
info:
|
|
description: >-
|
|
mailcow is complete e-mailing solution with advanced antispam, antivirus,
|
|
nice UI and API.
|
|
|
|
|
|
In order to use this API you have to create a API key and add your IP
|
|
address to the whitelist of allowed IPs this can be done by logging into the
|
|
Mailcow UI using your admin account, then go to Configuration > Access >
|
|
Edit administrator details > API. There you will find a collapsed API menu.
|
|
|
|
|
|
There are two types of API keys
|
|
- The read only key can only be used for all get endpoints
|
|
- The read write key can be used for all endpoints
|
|
|
|
title: mailcow API
|
|
version: "1.0.0"
|
|
|
|
servers:
|
|
- url: /
|
|
|
|
components:
|
|
securitySchemes:
|
|
ApiKeyAuth:
|
|
type: apiKey
|
|
in: header
|
|
name: X-API-Key
|
|
responses:
|
|
Unauthorized:
|
|
description: Unauthorized
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
example: error
|
|
msg:
|
|
type: string
|
|
example: authentication failed
|
|
required:
|
|
- type
|
|
- msg
|
|
|
|
security:
|
|
- ApiKeyAuth: []
|
|
|
|
paths:
|
|
/api/v1/add/alias:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- mailbox
|
|
- add
|
|
- alias
|
|
- active: "1"
|
|
address: alias@domain.tld
|
|
goto: destination@domain.tld
|
|
- null
|
|
msg:
|
|
- alias_added
|
|
- alias@domain.tld
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Aliases
|
|
description: >-
|
|
You may create your own mailbox alias using this action. It takes a JSON
|
|
object containing a domain informations.
|
|
|
|
Only one `goto*` option can be used, for ex. if you want learn as spam,
|
|
then send just `goto_spam = 1` in request body.
|
|
operationId: Create alias
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
active: "1"
|
|
address: alias@domain.tld
|
|
goto: destination@domain.tld
|
|
properties:
|
|
active:
|
|
description: is alias active or not
|
|
type: boolean
|
|
address:
|
|
description: 'alias address, for catchall use "@domain.tld"'
|
|
type: string
|
|
goto:
|
|
description: "destination address, comma separated"
|
|
type: string
|
|
goto_ham:
|
|
description: learn as ham
|
|
type: boolean
|
|
goto_null:
|
|
description: silently ignore
|
|
type: boolean
|
|
goto_spam:
|
|
description: learn as spam
|
|
type: boolean
|
|
sogo_visible:
|
|
description: toggle visibility as selectable sender in SOGo
|
|
type: boolean
|
|
type: object
|
|
summary: Create alias
|
|
/api/v1/add/time_limited_alias:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- mailbox
|
|
- add
|
|
- time_limited_alias
|
|
- address: info@domain.tld
|
|
domain: domain.tld
|
|
- null
|
|
msg:
|
|
- mailbox_modified
|
|
- info@domain.tld
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Aliases
|
|
description: >-
|
|
You may create a time limited alias using this action. It takes a JSON
|
|
object containing a domain and mailbox informations.
|
|
Mailcow will generate a random alias.
|
|
operationId: Create time limited alias
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
username: info@domain.tld
|
|
domain: domain.tld
|
|
properties:
|
|
username:
|
|
description: 'the mailbox an alias should be created for'
|
|
type: string
|
|
domain:
|
|
description: "the domain"
|
|
type: string
|
|
type: object
|
|
summary: Create time limited alias
|
|
/api/v1/add/app-passwd:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- app_passwd
|
|
- add
|
|
- active: "1"
|
|
username: info@domain.tld
|
|
app_name: wordpress
|
|
app_passwd: keyleudecticidechothistishownsan31
|
|
app_passwd2: keyleudecticidechothistishownsan31
|
|
protocols:
|
|
- imap_access
|
|
- dav_access
|
|
- smtp_access
|
|
- eas_access
|
|
- pop3_access
|
|
- sieve_access
|
|
msg: app_passwd_added
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- App Passwords
|
|
description: >-
|
|
Using this endpoint you can create a new app password for a specific
|
|
mailbox.
|
|
operationId: Create App Password
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
active: "1"
|
|
username: info@domain.tld
|
|
app_name: wordpress
|
|
app_passwd: keyleudecticidechothistishownsan31
|
|
app_passwd2: keyleudecticidechothistishownsan31
|
|
protocols:
|
|
- imap_access
|
|
- dav_access
|
|
- smtp_access
|
|
- eas_access
|
|
- pop3_access
|
|
- sieve_access
|
|
properties:
|
|
active:
|
|
description: is alias active or not
|
|
type: boolean
|
|
username:
|
|
description: mailbox for which the app password should be created
|
|
type: string
|
|
app_name:
|
|
description: name of your app password
|
|
type: string
|
|
app_passwd:
|
|
description: your app password
|
|
type: string
|
|
app_passwd2:
|
|
description: your app password
|
|
type: string
|
|
type: object
|
|
summary: Create App Password
|
|
/api/v1/add/bcc:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- bcc
|
|
- add
|
|
- active: "1"
|
|
bcc_dest: bcc@awesomecow.tld
|
|
local_dest: mailcow.tld
|
|
type: sender
|
|
- null
|
|
msg: bcc_saved
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Address Rewriting
|
|
description: >-
|
|
Using this endpoint you can create a BCC map to forward all mails via a
|
|
bcc for a given domain.
|
|
operationId: Create BCC Map
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
active: "1"
|
|
bcc_dest: bcc@awesomecow.tld
|
|
local_dest: mailcow.tld
|
|
type: sender
|
|
properties:
|
|
active:
|
|
description: 1 for a active user account 0 for a disabled user account
|
|
type: number
|
|
bcc_dest:
|
|
description: the email address where all mails should be send to
|
|
type: string
|
|
local_dest:
|
|
description: the domain which emails should be forwarded
|
|
type: string
|
|
type:
|
|
description: the type of bcc map can be `sender` or `recipient`
|
|
type: string
|
|
type: object
|
|
summary: Create BCC Map
|
|
/api/v1/add/dkim:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- dkim
|
|
- add
|
|
- dkim_selector: dkim
|
|
domains: hanspeterlol.de
|
|
key_size: "2048"
|
|
msg:
|
|
- dkim_added
|
|
- hanspeterlol.de
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- DKIM
|
|
description: Using this endpoint you can generate new DKIM keys.
|
|
operationId: Generate DKIM Key
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
dkim_selector: dkim
|
|
domains: mailcow.tld
|
|
key_size: "2048"
|
|
properties:
|
|
dkim_selector:
|
|
description: the DKIM selector default dkim
|
|
type: string
|
|
domains:
|
|
description: a list of domains for which a dkim key should be generated
|
|
type: string
|
|
key_size:
|
|
description: the key size (1024 or 2048)
|
|
type: number
|
|
type: object
|
|
summary: Generate DKIM Key
|
|
/api/v1/add/dkim_duplicate:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- dkim
|
|
- duplicate
|
|
- from_domain: mailcow.tld
|
|
to_domain: awesomecow.tld
|
|
msg:
|
|
- dkim_duplicated
|
|
- mailcow.tld
|
|
- awesomecow.tld
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- DKIM
|
|
description: Using this endpoint you can duplicate the DKIM Key of one domain.
|
|
operationId: Duplicate DKIM Key
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
from_domain: mailcow.tld
|
|
to_domain: awesomecow.tld
|
|
properties:
|
|
fron_domain:
|
|
description: the domain where the dkim key should be copied from
|
|
type: string
|
|
to_domain:
|
|
description: the domain where the dkim key should be copied to
|
|
type: string
|
|
type: object
|
|
summary: Duplicate DKIM Key
|
|
/api/v1/add/domain:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- ratelimit
|
|
- edit
|
|
- domain
|
|
- object: domain.tld
|
|
rl_frame: s
|
|
rl_value: "10"
|
|
msg:
|
|
- rl_saved
|
|
- domain.tld
|
|
type: success
|
|
- log:
|
|
- mailbox
|
|
- add
|
|
- domain
|
|
- active: "1"
|
|
aliases: "400"
|
|
restart_sogo: "1"
|
|
backupmx: "0"
|
|
defquota: "3072"
|
|
description: some decsription
|
|
domain: domain.tld
|
|
mailboxes: "10"
|
|
maxquota: "10240"
|
|
quota: "10240"
|
|
relay_all_recipients: "0"
|
|
rl_frame: s
|
|
rl_value: "10"
|
|
tags: ["tag1", "tag2"]
|
|
- null
|
|
msg:
|
|
- domain_added
|
|
- domain.tld
|
|
type: success
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Domains
|
|
description: >-
|
|
You may create your own domain using this action. It takes a JSON object
|
|
containing a domain informations.
|
|
operationId: Create domain
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
active: "1"
|
|
aliases: "400"
|
|
backupmx: "0"
|
|
defquota: "3072"
|
|
description: some decsription
|
|
domain: domain.tld
|
|
mailboxes: "10"
|
|
maxquota: "10240"
|
|
quota: "10240"
|
|
relay_all_recipients: "0"
|
|
rl_frame: s
|
|
rl_value: "10"
|
|
restart_sogo: "10"
|
|
tags: ["tag1", "tag2"]
|
|
properties:
|
|
active:
|
|
description: is domain active or not
|
|
type: boolean
|
|
aliases:
|
|
description: limit count of aliases associated with this domain
|
|
type: number
|
|
backupmx:
|
|
description: relay domain or not
|
|
type: boolean
|
|
defquota:
|
|
description: predefined mailbox quota in `add mailbox` form
|
|
type: number
|
|
description:
|
|
description: Description of domain
|
|
type: string
|
|
domain:
|
|
description: Fully qualified domain name
|
|
type: string
|
|
gal:
|
|
description: >-
|
|
is domain global address list active or not, it enables
|
|
shared contacts accross domain in SOGo webmail
|
|
type: boolean
|
|
mailboxes:
|
|
description: limit count of mailboxes associated with this domain
|
|
type: number
|
|
maxquota:
|
|
description: maximum quota per mailbox
|
|
type: number
|
|
quota:
|
|
description: maximum quota for this domain (for all mailboxes in sum)
|
|
type: number
|
|
restart_sogo:
|
|
description: restart SOGo to activate the domain in SOGo
|
|
type: number
|
|
relay_all_recipients:
|
|
description: >-
|
|
if not, them you have to create "dummy" mailbox for each
|
|
address to relay
|
|
type: boolean
|
|
relay_unknown_only:
|
|
description: Relay non-existing mailboxes only. Existing mailboxes will be delivered locally.
|
|
type: boolean
|
|
rl_frame:
|
|
enum:
|
|
- s
|
|
- m
|
|
- h
|
|
- d
|
|
type: string
|
|
rl_value:
|
|
description: rate limit value
|
|
type: number
|
|
tags:
|
|
description: tags for this Domain
|
|
type: array
|
|
items:
|
|
type: string
|
|
type: object
|
|
summary: Create domain
|
|
/api/v1/add/domain-admin:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- domain_admin
|
|
- add
|
|
- active: "1"
|
|
domains: mailcow.tld
|
|
password: "*"
|
|
password2: "*"
|
|
username: testadmin
|
|
msg:
|
|
- domain_admin_added
|
|
- testadmin
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Domain admin
|
|
description: >-
|
|
Using this endpoint you can create a new Domain Admin user. This user
|
|
has full control over a domain, and can create new mailboxes and
|
|
aliases.
|
|
operationId: Create Domain Admin user
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
active: "1"
|
|
domains: mailcow.tld
|
|
password: supersecurepw
|
|
password2: supersecurepw
|
|
username: testadmin
|
|
properties:
|
|
active:
|
|
description: 1 for a active user account 0 for a disabled user account
|
|
type: number
|
|
domains:
|
|
description: the domains the user should be a admin of
|
|
type: string
|
|
password:
|
|
description: domain admin user password
|
|
type: string
|
|
password2:
|
|
description: domain admin user password
|
|
type: string
|
|
username:
|
|
description: the username for the admin user
|
|
type: string
|
|
type: object
|
|
summary: Create Domain Admin user
|
|
/api/v1/add/sso/domain-admin:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
token: "591F6D-5C3DD2-7455CD-DAF1C1-AA4FCC"
|
|
description: OK
|
|
headers: { }
|
|
tags:
|
|
- Single Sign-On
|
|
description: >-
|
|
Using this endpoint you can issue a token for Domain Admin user. This token can be used for
|
|
autologin Domain Admin user by using query_string var sso_token={token}. Token expiration time is 30s
|
|
operationId: Issue Domain Admin SSO token
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
username: testadmin
|
|
properties:
|
|
username:
|
|
description: the username for the admin user
|
|
type: object
|
|
type: object
|
|
summary: Issue Domain Admin SSO token
|
|
/api/v1/edit/da-acl:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- type: success
|
|
log:
|
|
- acl
|
|
- edit
|
|
- testadmin
|
|
- username:
|
|
- testadmin
|
|
da_acl:
|
|
- syncjobs
|
|
- quarantine
|
|
- login_as
|
|
- sogo_access
|
|
- app_passwds
|
|
- bcc_maps
|
|
- pushover
|
|
- filters
|
|
- ratelimit
|
|
- spam_policy
|
|
- extend_sender_acl
|
|
- unlimited_quota
|
|
- protocol_access
|
|
- smtp_ip_access
|
|
- alias_domains
|
|
- domain_desc
|
|
msg:
|
|
- acl_saved
|
|
- testadmin
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Domain admin
|
|
description: >-
|
|
Using this endpoint you can edit the ACLs of a Domain Admin user. This user
|
|
has full control over a domain, and can create new mailboxes and
|
|
aliases.
|
|
operationId: Edit Domain Admin ACL
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
items:
|
|
- testadmin
|
|
attr:
|
|
da_acl:
|
|
- syncjobs
|
|
- quarantine
|
|
- login_as
|
|
- sogo_access
|
|
- app_passwds
|
|
- bcc_maps
|
|
- pushover
|
|
- filters
|
|
- ratelimit
|
|
- spam_policy
|
|
- extend_sender_acl
|
|
- unlimited_quota
|
|
- protocol_access
|
|
- smtp_ip_access
|
|
- alias_domains
|
|
- domain_desc
|
|
properties:
|
|
items:
|
|
description: contains the domain admin username you want to edit
|
|
type: object
|
|
attr:
|
|
properties:
|
|
da_acl:
|
|
description: contains the list of acl names that are active for this user
|
|
type: object
|
|
type: object
|
|
summary: Edit Domain Admin ACL
|
|
/api/v1/edit/domain-admin:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- type: success
|
|
log:
|
|
- domain_admin
|
|
- edit
|
|
- username: testadmin
|
|
active: ["0","1"]
|
|
username_new: testadmin
|
|
domains: ["domain.tld"]
|
|
password: "*"
|
|
password2: "*"
|
|
msg:
|
|
- domain_admin_modified
|
|
- testadmin
|
|
schema:
|
|
properties:
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Domain admin
|
|
description: >-
|
|
Using this endpoint you can edit a existing Domain Admin user. This user
|
|
has full control over a domain, and can create new mailboxes and
|
|
aliases.
|
|
operationId: Edit Domain Admin user
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
items:
|
|
- testadmin
|
|
attr:
|
|
active:
|
|
- '0'
|
|
- '1'
|
|
username_new: testadmin
|
|
domains: ["domain.tld"]
|
|
password: supersecurepassword
|
|
password2: supersecurepassword
|
|
properties:
|
|
attr:
|
|
properties:
|
|
active:
|
|
description: is the domain admin active or not
|
|
type: boolean
|
|
username_new:
|
|
description: the username of the domain admin, change this to change the username
|
|
type: string
|
|
domains:
|
|
description: a list of all domains managed by this domain admin
|
|
type: array
|
|
items:
|
|
type: string
|
|
password:
|
|
description: the new domain admin user password
|
|
type: string
|
|
password2:
|
|
description: the new domain admin user password for confirmation
|
|
type: string
|
|
type: object
|
|
items:
|
|
description: contains the domain admin username you want to edit
|
|
type: object
|
|
summary: Edit Domain Admin user
|
|
/api/v1/add/domain-policy:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- policy
|
|
- add
|
|
- domain
|
|
- domain: domain.tld
|
|
object_from: "*@baddomain.tld"
|
|
object_list: bl
|
|
msg:
|
|
- domain_modified
|
|
- domain.tld
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Domain antispam policies
|
|
description: >-
|
|
You may create your own domain policy using this action. It takes a JSON
|
|
object containing a domain informations.
|
|
operationId: Create domain policy
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
domain: domain.tld
|
|
object_from: "*@baddomain.tld"
|
|
object_list: bl
|
|
properties:
|
|
domain:
|
|
description: domain name to which policy is associated to
|
|
type: string
|
|
object_from:
|
|
description: exact address or use wildcard to match whole domain
|
|
type: string
|
|
object_list:
|
|
enum:
|
|
- wl
|
|
- bl
|
|
type: string
|
|
type: object
|
|
summary: Create domain policy
|
|
/api/v1/add/fwdhost:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- fwdhost
|
|
- add
|
|
- filter_spam: "0"
|
|
hostname: hosted.mailcow.de
|
|
msg:
|
|
- forwarding_host_added
|
|
- "5.1.76.202, 2a00:f820:417::202"
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Fordwarding Hosts
|
|
description: >-
|
|
Add a new Forwarding host to mailcow. You can chose to enable or disable
|
|
spam filtering of incoming emails by specifing `filter_spam` 0 =
|
|
inactive, 1 = active.
|
|
operationId: Add Forward Host
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
filter_spam: "0"
|
|
hostname: hosted.mailcow.de
|
|
properties:
|
|
filter_spam:
|
|
description: "1 to enable spam filter, 0 to disable spam filter"
|
|
type: number
|
|
hostname:
|
|
description: contains the hostname you want to add
|
|
type: string
|
|
type: object
|
|
summary: Add Forward Host
|
|
/api/v1/add/mailbox:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- mailbox
|
|
- add
|
|
- mailbox
|
|
- active: "1"
|
|
domain: domain.tld
|
|
local_part: info
|
|
name: Full name
|
|
password: "*"
|
|
password2: "*"
|
|
quota: "3072"
|
|
force_pw_update: "1"
|
|
tls_enforce_in: "1"
|
|
tls_enforce_out: "1"
|
|
tags: ["tag1", "tag2"]
|
|
- null
|
|
msg:
|
|
- mailbox_added
|
|
- info@domain.tld
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Mailboxes
|
|
description: >-
|
|
You may create your own mailbox using this action. It takes a JSON
|
|
object containing a domain informations.
|
|
operationId: Create mailbox
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
active: "1"
|
|
domain: domain.tld
|
|
local_part: info
|
|
name: Full name
|
|
password: atedismonsin
|
|
password2: atedismonsin
|
|
quota: "3072"
|
|
force_pw_update: "1"
|
|
tls_enforce_in: "1"
|
|
tls_enforce_out: "1"
|
|
tags: ["tag1", "tag2"]
|
|
properties:
|
|
active:
|
|
description: is mailbox active or not
|
|
type: boolean
|
|
domain:
|
|
description: domain name
|
|
type: string
|
|
local_part:
|
|
description: left part of email address
|
|
type: string
|
|
name:
|
|
description: Full name of the mailbox user
|
|
type: string
|
|
password2:
|
|
description: mailbox password for confirmation
|
|
type: string
|
|
password:
|
|
description: mailbox password
|
|
type: string
|
|
quota:
|
|
description: mailbox quota
|
|
type: number
|
|
force_pw_update:
|
|
description: forces the user to update its password on first login
|
|
type: boolean
|
|
tls_enforce_in:
|
|
description: force inbound email tls encryption
|
|
type: boolean
|
|
tls_enforce_out:
|
|
description: force oubound tmail tls encryption
|
|
type: boolean
|
|
type: object
|
|
summary: Create mailbox
|
|
|
|
/api/v1/add/oauth2-client:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- oauth2
|
|
- add
|
|
- client
|
|
- redirect_uri: "https://mailcow.tld"
|
|
msg: Added client access
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- oAuth Clients
|
|
description: Using this endpoint you can create a oAuth clients.
|
|
operationId: Create oAuth Client
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
redirect_uri: "https://mailcow.tld"
|
|
properties:
|
|
redirect_uri:
|
|
description: the uri where you should be redirected after oAuth
|
|
type: string
|
|
type: object
|
|
summary: Create oAuth Client
|
|
/api/v1/add/recipient_map:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- recipient_map
|
|
- add
|
|
- active: "1"
|
|
recipient_map_new: target@mailcow.tld
|
|
recipient_map_old: recipient@mailcow.tld
|
|
- null
|
|
msg:
|
|
- recipient_map_entry_saved
|
|
- recipient@mailcow.tld
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Address Rewriting
|
|
description: >-
|
|
Using this endpoint you can create a recipient map to forward all mails
|
|
from one email address to another.
|
|
operationId: Create Recipient Map
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
active: "1"
|
|
recipient_map_new: target@mailcow.tld
|
|
recipient_map_old: recipient@mailcow.tld
|
|
properties:
|
|
active:
|
|
description: 1 for a active user account 0 for a disabled user account
|
|
type: number
|
|
recipient_map_new:
|
|
description: the email address that should receive the forwarded emails
|
|
type: string
|
|
recipient_map_old:
|
|
description: the email address which emails should be forwarded
|
|
type: string
|
|
type: object
|
|
summary: Create Recipient Map
|
|
/api/v1/add/relayhost:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- relayhost
|
|
- add
|
|
- hostname: "mailcow.tld:25"
|
|
password: supersecurepassword
|
|
username: testuser
|
|
msg:
|
|
- relayhost_added
|
|
- ""
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Routing
|
|
description: Using this endpoint you can create Sender-Dependent Transports.
|
|
operationId: Create Sender-Dependent Transports
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
hostname: "mailcow.tld:25"
|
|
password: supersecurepassword
|
|
username: testuser
|
|
properties:
|
|
hostname:
|
|
description: the hostname of the smtp server with port
|
|
type: string
|
|
password:
|
|
description: the password for the smtp user
|
|
type: string
|
|
username:
|
|
description: the username used to authenticate
|
|
type: string
|
|
type: object
|
|
summary: Create Sender-Dependent Transports
|
|
/api/v1/add/resource:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- mailbox
|
|
- add
|
|
- resource
|
|
- active: "1"
|
|
description: test
|
|
domain: mailcow.tld
|
|
kind: location
|
|
multiple_bookings: "0"
|
|
multiple_bookings_custom: ""
|
|
multiple_bookings_select: "0"
|
|
- null
|
|
msg:
|
|
- resource_added
|
|
- mailcow.tld
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Resources
|
|
description: Using this endpoint you can create Resources.
|
|
operationId: Create Resources
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
active: "1"
|
|
description: test
|
|
domain: mailcow.tld
|
|
kind: location
|
|
multiple_bookings: "0"
|
|
multiple_bookings_custom: ""
|
|
multiple_bookings_select: "0"
|
|
properties:
|
|
active:
|
|
description: 1 for a active transport map 0 for a disabled transport map
|
|
type: number
|
|
description:
|
|
description: a description of the resource
|
|
type: string
|
|
domain:
|
|
description: the domain for which the resource should be
|
|
type: string
|
|
kind:
|
|
description: the kind of recouse
|
|
enum:
|
|
- location
|
|
- group
|
|
- thing
|
|
type: string
|
|
multiple_bookings:
|
|
enum:
|
|
- "-1"
|
|
- "1"
|
|
- custom
|
|
type: string
|
|
multiple_bookings_custom:
|
|
description: always empty
|
|
type: number
|
|
multiple_bookings_select:
|
|
enum:
|
|
- "-1"
|
|
- "1"
|
|
- custom
|
|
type: string
|
|
type: object
|
|
summary: Create Resources
|
|
/api/v1/add/syncjob:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- mailbox
|
|
- add
|
|
- syncjob
|
|
- active: "1"
|
|
automap: "1"
|
|
custom_params: ""
|
|
delete1: "0"
|
|
delete2: "0"
|
|
delete2duplicates: "1"
|
|
enc1: SSL
|
|
exclude: (?i)spam|(?i)junk
|
|
host1: imap.server.tld
|
|
maxage: "0"
|
|
maxbytespersecond: "0"
|
|
mins_interval: "20"
|
|
password1: supersecret
|
|
port1: 993
|
|
skipcrossduplicates: "0"
|
|
subfolder2: External
|
|
subscribeall: "1"
|
|
timeout1: "600"
|
|
timeout2: "600"
|
|
user1: username
|
|
username: mailbox@domain.tld
|
|
- null
|
|
msg:
|
|
- mailbox_modified
|
|
- mailbox@domain.tld
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Sync jobs
|
|
description: >-
|
|
You can create new sync job using this action. It takes a JSON object
|
|
containing a domain informations.
|
|
operationId: Create sync job
|
|
summary: Create sync job
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
username: lisa@mailcow.tld
|
|
host1: mail.mailcow.tld
|
|
port1: "143"
|
|
user1: demo@mailcow.tld
|
|
password1: supersecretpw
|
|
enc1: TLS
|
|
mins_interval: "20"
|
|
subfolder2: "/SyncIntoSubfolder"
|
|
maxage: "0"
|
|
maxbytespersecond: "0"
|
|
timeout1: "600"
|
|
timeout2: "600"
|
|
exclude: "(?i)spam|(?i)junk"
|
|
custom_params: "--dry"
|
|
delete2duplicates: "1"
|
|
delete1: "1"
|
|
delete2: "0"
|
|
automap: "1"
|
|
skipcrossduplicates: "0"
|
|
subscribeall: "0"
|
|
active: "1"
|
|
properties:
|
|
parameters:
|
|
description: your local mailcow mailbox
|
|
type: string
|
|
host1:
|
|
description: the smtp server where mails should be synced from
|
|
type: string
|
|
port1:
|
|
description: the smtp port of the target mail server
|
|
type: string
|
|
password:
|
|
description: the password of the mailbox
|
|
type: string
|
|
enc1:
|
|
description: the encryption method used to connect to the mailserver
|
|
type: string
|
|
mins_internal:
|
|
description: the interval in which messages should be syned
|
|
type: number
|
|
subfolder2:
|
|
description: sync into subfolder on destination (empty = do not use subfolder)
|
|
type: string
|
|
maxage:
|
|
description: only sync messages up to this age in days
|
|
type: number
|
|
maxbytespersecond:
|
|
description: max speed transfer limit for the sync
|
|
type: number
|
|
timeout1:
|
|
description: timeout for connection to remote host
|
|
type: number
|
|
timeout2:
|
|
description: timeout for connection to local host
|
|
type: number
|
|
exclude:
|
|
description: exclude objects (regex)
|
|
type: string
|
|
custom_params:
|
|
description: custom parameters
|
|
type: string
|
|
delete2duplicates:
|
|
description: delete duplicates on destination (--delete2duplicates)
|
|
type: boolean
|
|
delete1:
|
|
description: delete from source when completed (--delete1)
|
|
type: boolean
|
|
delete2:
|
|
description: delete messages on destination that are not on source (--delete2)
|
|
type: boolean
|
|
automap:
|
|
description: try to automap folders ("Sent items", "Sent" => "Sent" etc.) (--automap)
|
|
type: boolean
|
|
skipcrossduplicates:
|
|
description: skip duplicate messages across folders (first come, first serve) (--skipcrossduplicates)
|
|
type: boolean
|
|
subscribeall:
|
|
description: subscribe all folders (--subscribeall)
|
|
type: boolean
|
|
active:
|
|
description: enables or disables the sync job
|
|
type: boolean
|
|
type: object
|
|
/api/v1/add/tls-policy-map:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- tls_policy_maps
|
|
- add
|
|
- parameters: ""
|
|
active: "1"
|
|
dest: mailcow.tld
|
|
policy: encrypt
|
|
- null
|
|
msg:
|
|
- tls_policy_map_entry_saved
|
|
- mailcow.tld
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Outgoing TLS Policy Map Overrides
|
|
description: Using this endpoint you can create a TLS policy map override.
|
|
operationId: Create TLS Policy Map
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
parameters: ""
|
|
active: "1"
|
|
dest: mailcow.tld
|
|
policy: encrypt
|
|
properties:
|
|
parameters:
|
|
description: >-
|
|
custom parameters you find out more about them
|
|
[here](http://www.postfix.org/postconf.5.html#smtp_tls_policy_maps)
|
|
type: string
|
|
active:
|
|
description: 1 for a active user account 0 for a disabled user account
|
|
type: number
|
|
dest:
|
|
description: the target domain or email address
|
|
type: string
|
|
policy:
|
|
description: the policy
|
|
enum:
|
|
- none
|
|
- may
|
|
- encrypt
|
|
- dane
|
|
- "'dane"
|
|
- fingerprint
|
|
- verify
|
|
- secure
|
|
type: string
|
|
type: object
|
|
summary: Create TLS Policy Map
|
|
/api/v1/add/transport:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- transport
|
|
- add
|
|
- active: "1"
|
|
destination: example2.org
|
|
nexthop: "host:25"
|
|
password: supersecurepw
|
|
username: testuser
|
|
msg:
|
|
- relayhost_added
|
|
- ""
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Routing
|
|
description: Using this endpoint you can create Sender-Dependent Transports.
|
|
operationId: Create Transport Maps
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
active: "1"
|
|
destination: example.org
|
|
nexthop: "host:25"
|
|
password: supersecurepw
|
|
username: testuser
|
|
properties:
|
|
active:
|
|
description: 1 for a active transport map 0 for a disabled transport map
|
|
type: number
|
|
destination:
|
|
type: string
|
|
nexthop:
|
|
type: string
|
|
password:
|
|
description: the password for the smtp user
|
|
type: string
|
|
username:
|
|
description: the username used to authenticate
|
|
type: string
|
|
type: object
|
|
summary: Create Transport Maps
|
|
/api/v1/delete/alias:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- mailbox
|
|
- delete
|
|
- alias
|
|
- id:
|
|
- "6"
|
|
- "9"
|
|
- null
|
|
msg:
|
|
- alias_removed
|
|
- alias@domain.tld
|
|
type: success
|
|
- log:
|
|
- mailbox
|
|
- delete
|
|
- alias
|
|
- id:
|
|
- "6"
|
|
- "9"
|
|
- null
|
|
msg:
|
|
- alias_removed
|
|
- alias2@domain.tld
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Aliases
|
|
description: You can delete one or more aliases.
|
|
operationId: Delete alias
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
items:
|
|
example: "6"
|
|
type: string
|
|
type: array
|
|
summary: Delete alias
|
|
/api/v1/delete/app-passwd:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- app_passwd
|
|
- delete
|
|
- id:
|
|
- "2"
|
|
msg:
|
|
- app_passwd_removed
|
|
- "2"
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- App Passwords
|
|
description: Using this endpoint you can delete a single app password.
|
|
operationId: Delete App Password
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
- "1"
|
|
properties:
|
|
items:
|
|
description: contains list of app passwords you want to delete
|
|
type: object
|
|
type: object
|
|
summary: Delete App Password
|
|
/api/v1/delete/bcc:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- bcc
|
|
- delete
|
|
- id:
|
|
- "4"
|
|
- null
|
|
msg:
|
|
- bcc_deleted
|
|
- "4"
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Address Rewriting
|
|
description: >-
|
|
Using this endpoint you can delete a BCC map, for this you have to know
|
|
its ID. You can get the ID using the GET method.
|
|
operationId: Delete BCC Map
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
- "3"
|
|
properties:
|
|
items:
|
|
description: contains list of bcc maps you want to delete
|
|
type: object
|
|
type: object
|
|
summary: Delete BCC Map
|
|
/api/v1/delete/dkim:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- dkim
|
|
- delete
|
|
- domains:
|
|
- mailcow.tld
|
|
msg:
|
|
- dkim_removed
|
|
- mailcow.tld
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- DKIM
|
|
description: Using this endpoint a existing DKIM Key can be deleted
|
|
operationId: Delete DKIM Key
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
items:
|
|
example:
|
|
- mailcow.tld
|
|
type: string
|
|
type: array
|
|
summary: Delete DKIM Key
|
|
/api/v1/delete/domain:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- mailbox
|
|
- delete
|
|
- domain
|
|
- domain:
|
|
- domain.tld
|
|
- domain2.tld
|
|
- null
|
|
msg:
|
|
- domain_removed
|
|
- domain.tld
|
|
type: success
|
|
- log:
|
|
- mailbox
|
|
- delete
|
|
- domain
|
|
- domain:
|
|
- domain.tld
|
|
- domain2.tld
|
|
- null
|
|
msg:
|
|
- domain_removed
|
|
- domain2.tld
|
|
type: success
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Domains
|
|
description: You can delete one or more domains.
|
|
operationId: Delete domain
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
example:
|
|
- domain.tld
|
|
- domain2.tld
|
|
properties:
|
|
items:
|
|
type: array
|
|
items:
|
|
type: string
|
|
summary: Delete domain
|
|
/api/v1/delete/domain-admin:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- domain_admin
|
|
- delete
|
|
- username:
|
|
- testadmin
|
|
msg:
|
|
- domain_admin_removed
|
|
- testadmin
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Domain admin
|
|
description: Using this endpoint a existing Domain Admin user can be deleted.
|
|
operationId: Delete Domain Admin
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
- testadmin
|
|
properties:
|
|
items:
|
|
description: contains list of usernames of the users you want to delete
|
|
type: object
|
|
type: object
|
|
summary: Delete Domain Admin
|
|
/api/v1/delete/domain-policy:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- policy
|
|
- delete
|
|
- domain
|
|
- prefid:
|
|
- "1"
|
|
- "2"
|
|
msg:
|
|
- item_deleted
|
|
- "1"
|
|
type: success
|
|
- log:
|
|
- policy
|
|
- delete
|
|
- domain
|
|
- prefid:
|
|
- "1"
|
|
- "2"
|
|
msg:
|
|
- item_deleted
|
|
- "2"
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Domain antispam policies
|
|
description: You can delete one o more domain policies.
|
|
operationId: Delete domain policy
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
- "1"
|
|
- "2"
|
|
properties:
|
|
items:
|
|
description: contains list of domain policys you want to delete
|
|
type: object
|
|
type: object
|
|
summary: Delete domain policy
|
|
/api/v1/delete/fwdhost:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- fwdhost
|
|
- delete
|
|
- forwardinghost:
|
|
- 5.1.76.202
|
|
- "2a00:f820:417::202"
|
|
msg:
|
|
- forwarding_host_removed
|
|
- 5.1.76.202
|
|
type: success
|
|
- log:
|
|
- fwdhost
|
|
- delete
|
|
- forwardinghost:
|
|
- 5.1.76.202
|
|
- "2a00:f820:417::202"
|
|
msg:
|
|
- forwarding_host_removed
|
|
- "2a00:f820:417::202"
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Fordwarding Hosts
|
|
description: >-
|
|
Using this endpoint you can delete a forwarding host, in order to do so
|
|
you need to know the IP of the host.
|
|
operationId: Delete Forward Host
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
- 5.1.76.202
|
|
- "2a00:f820:417::202"
|
|
properties:
|
|
ip:
|
|
description: contains the ip of the fowarding host you want to delete
|
|
type: string
|
|
type: object
|
|
summary: Delete Forward Host
|
|
/api/v1/delete/mailbox:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- mailbox
|
|
- delete
|
|
- mailbox
|
|
- username:
|
|
- info@domain.tld
|
|
- sales@domain.tld
|
|
- null
|
|
msg:
|
|
- mailbox_removed
|
|
- info@domain.tld
|
|
type: success
|
|
- log:
|
|
- mailbox
|
|
- delete
|
|
- mailbox
|
|
- username:
|
|
- info@domain.tld
|
|
- sales@domain.tld
|
|
- null
|
|
msg:
|
|
- mailbox_removed
|
|
- sales@domain.tld
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Mailboxes
|
|
description: You can delete one or more mailboxes.
|
|
operationId: Delete mailbox
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
- info@domain.tld
|
|
- sales@domain.tld
|
|
properties:
|
|
items:
|
|
description: contains list of mailboxes you want to delete
|
|
type: object
|
|
type: object
|
|
summary: Delete mailbox
|
|
/api/v1/delete/mailq:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
msg: Task completed
|
|
type: success
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Queue Manager
|
|
description: >-
|
|
Using this API you can delete the current mail queue. This will delete
|
|
all mails in it.
|
|
|
|
This API uses the command: `postsuper -d`
|
|
operationId: Delete Queue
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
action: super_delete
|
|
properties:
|
|
action:
|
|
description: use super_delete to delete the mail queue
|
|
type: string
|
|
type: object
|
|
summary: Delete Queue
|
|
/api/v1/delete/oauth2-client:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- oauth2
|
|
- delete
|
|
- client
|
|
- id:
|
|
- "1"
|
|
msg:
|
|
- items_deleted
|
|
- "1"
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- oAuth Clients
|
|
description: >-
|
|
Using this endpoint you can delete a oAuth client, for this you have to
|
|
know its ID. You can get the ID using the GET method.
|
|
operationId: Delete oAuth Client
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
- "3"
|
|
properties:
|
|
items:
|
|
description: contains list of oAuth clients you want to delete
|
|
type: object
|
|
type: object
|
|
summary: Delete oAuth Client
|
|
/api/v1/delete/qitem:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- quarantine
|
|
- delete
|
|
- id:
|
|
- "33"
|
|
msg:
|
|
- item_deleted
|
|
- "33"
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Quarantine
|
|
description: >-
|
|
Using this endpoint you can delete a email from quarantine, for this you
|
|
have to know its ID. You can get the ID using the GET method.
|
|
operationId: Delete mails in Quarantine
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
- "33"
|
|
properties:
|
|
items:
|
|
description: contains list of emails you want to delete
|
|
type: object
|
|
type: object
|
|
summary: Delete mails in Quarantine
|
|
/api/v1/delete/recipient_map:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- recipient_map
|
|
- delete
|
|
- id:
|
|
- "1"
|
|
- null
|
|
msg:
|
|
- recipient_map_entry_deleted
|
|
- "1"
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Address Rewriting
|
|
description: >-
|
|
Using this endpoint you can delete a recipient map, for this you have to
|
|
know its ID. You can get the ID using the GET method.
|
|
operationId: Delete Recipient Map
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
- "1"
|
|
properties:
|
|
items:
|
|
description: contains list of recipient maps you want to delete
|
|
type: object
|
|
type: object
|
|
summary: Delete Recipient Map
|
|
/api/v1/delete/relayhost:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- relayhost
|
|
- delete
|
|
- id:
|
|
- "1"
|
|
msg:
|
|
- relayhost_removed
|
|
- "1"
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Routing
|
|
description: >-
|
|
Using this endpoint you can delete a Sender-Dependent Transport, for
|
|
this you have to know its ID. You can get the ID using the GET method.
|
|
operationId: Delete Sender-Dependent Transports
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
- "1"
|
|
properties:
|
|
items:
|
|
description: >-
|
|
contains list of Sender-Dependent Transport you want to
|
|
delete
|
|
type: object
|
|
type: object
|
|
summary: Delete Sender-Dependent Transports
|
|
/api/v1/delete/resource:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- mailbox
|
|
- delete
|
|
- resource
|
|
- name:
|
|
- test@mailcow.tld
|
|
- null
|
|
msg:
|
|
- resource_removed
|
|
- test@mailcow.tld
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Resources
|
|
description: >-
|
|
Using this endpoint you can delete a Resources, for this you have to
|
|
know its ID. You can get the ID using the GET method.
|
|
operationId: Delete Resources
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
- test@mailcow.tld
|
|
properties:
|
|
items:
|
|
description: contains list of Resources you want to delete
|
|
type: object
|
|
type: object
|
|
summary: Delete Resources
|
|
/api/v1/delete/syncjob:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
log:
|
|
- entity
|
|
- action
|
|
- object
|
|
msg:
|
|
- message
|
|
- entity name
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Sync jobs
|
|
description: You can delete one or more sync jobs.
|
|
operationId: Delete sync job
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
- "6"
|
|
- "9"
|
|
properties:
|
|
items:
|
|
description: contains list of aliases you want to delete
|
|
type: object
|
|
type: object
|
|
summary: Delete sync job
|
|
/api/v1/delete/tls-policy-map:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- tls_policy_maps
|
|
- delete
|
|
- id:
|
|
- "1"
|
|
- null
|
|
msg:
|
|
- tls_policy_map_entry_deleted
|
|
- "1"
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Outgoing TLS Policy Map Overrides
|
|
description: >-
|
|
Using this endpoint you can delete a TLS Policy Map, for this you have
|
|
to know its ID. You can get the ID using the GET method.
|
|
operationId: Delete TLS Policy Map
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
- "3"
|
|
properties:
|
|
items:
|
|
description: contains list of tls policy maps you want to delete
|
|
type: object
|
|
type: object
|
|
summary: Delete TLS Policy Map
|
|
/api/v1/delete/transport:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- transport
|
|
- delete
|
|
- id:
|
|
- "1"
|
|
msg:
|
|
- relayhost_removed
|
|
- "1"
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Routing
|
|
description: >-
|
|
Using this endpoint you can delete a Transport Maps, for this you have
|
|
to know its ID. You can get the ID using the GET method.
|
|
operationId: Delete Transport Maps
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
- "1"
|
|
properties:
|
|
items:
|
|
description: contains list of transport maps you want to delete
|
|
type: object
|
|
type: object
|
|
summary: Delete Transport Maps
|
|
"/api/v1/delete/mailbox/tag/{mailbox}":
|
|
post:
|
|
parameters:
|
|
- description: name of mailbox
|
|
in: path
|
|
name: mailbox
|
|
example: info@domain.tld
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- mailbox
|
|
- delete
|
|
- tags_mailbox
|
|
- tags:
|
|
- tag1
|
|
- tag2
|
|
mailbox: info@domain.tld
|
|
- null
|
|
msg:
|
|
- mailbox_modified
|
|
- info@domain.tld
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Mailboxes
|
|
description: You can delete one or more mailbox tags.
|
|
operationId: Delete mailbox tags
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
- tag1
|
|
- tag2
|
|
properties:
|
|
items:
|
|
description: contains list of mailboxes you want to delete
|
|
type: object
|
|
type: object
|
|
summary: Delete mailbox tags
|
|
"/api/v1/delete/domain/tag/{domain}":
|
|
post:
|
|
parameters:
|
|
- description: name of domain
|
|
in: path
|
|
name: domain
|
|
example: domain.tld
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- mailbox
|
|
- delete
|
|
- tags_domain
|
|
- tags:
|
|
- tag1
|
|
- tag2
|
|
domain: domain.tld
|
|
- null
|
|
msg:
|
|
- domain_modified
|
|
- domain.tld
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Domains
|
|
description: You can delete one or more domain tags.
|
|
operationId: Delete domain tags
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
- tag1
|
|
- tag2
|
|
properties:
|
|
items:
|
|
description: contains list of domains you want to delete
|
|
type: object
|
|
type: object
|
|
summary: Delete domain tags
|
|
/api/v1/edit/alias:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- mailbox
|
|
- edit
|
|
- alias
|
|
- active: "1"
|
|
address: alias@domain.tld
|
|
goto: destination@domain.tld
|
|
id:
|
|
- "6"
|
|
private_comment: private comment
|
|
public_comment: public comment
|
|
- null
|
|
msg:
|
|
- alias_modified
|
|
- alias@domain.tld
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Aliases
|
|
description: >-
|
|
You can update one or more aliases per request. You can also send just
|
|
attributes you want to change
|
|
operationId: Update alias
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
attr:
|
|
active: "1"
|
|
address: alias@domain.tld
|
|
goto: destination@domain.tld
|
|
private_comment: private comment
|
|
public_comment: public comment
|
|
items: ["6"]
|
|
properties:
|
|
attr:
|
|
properties:
|
|
active:
|
|
description: is alias active or not
|
|
type: boolean
|
|
address:
|
|
description: 'alias address, for catchall use "@domain.tld"'
|
|
type: string
|
|
goto:
|
|
description: "destination address, comma separated"
|
|
type: string
|
|
goto_ham:
|
|
description: learn as ham
|
|
type: boolean
|
|
goto_null:
|
|
description: silently ignore
|
|
type: boolean
|
|
goto_spam:
|
|
description: learn as spam
|
|
type: boolean
|
|
private_comment:
|
|
type: string
|
|
public_comment:
|
|
type: string
|
|
sogo_visible:
|
|
description: toggle visibility as selectable sender in SOGo
|
|
type: boolean
|
|
type: object
|
|
items:
|
|
description: contains list of aliases you want update
|
|
type: object
|
|
type: object
|
|
summary: Update alias
|
|
/api/v1/edit/domain:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
log:
|
|
type: array
|
|
description: contains request object
|
|
items: {}
|
|
msg:
|
|
type: array
|
|
items: {}
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Domains
|
|
description: >-
|
|
You can update one or more domains per request. You can also send just
|
|
attributes you want to change.
|
|
|
|
Example: You can add domain names to items list and in attr object just
|
|
include `"active": "0"` to deactivate domains.
|
|
operationId: Update domain
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
attr:
|
|
active: "1"
|
|
aliases: "400"
|
|
backupmx: "1"
|
|
defquota: "3072"
|
|
description: domain description
|
|
gal: "1"
|
|
mailboxes: "10"
|
|
maxquota: "10240"
|
|
quota: "10240"
|
|
relay_all_recipients: "0"
|
|
relayhost: "2"
|
|
tags: ["tag3", "tag4"]
|
|
items: domain.tld
|
|
properties:
|
|
attr:
|
|
properties:
|
|
active:
|
|
description: is domain active or not
|
|
type: boolean
|
|
aliases:
|
|
description: limit count of aliases associated with this domain
|
|
type: number
|
|
backupmx:
|
|
description: relay domain or not
|
|
type: boolean
|
|
defquota:
|
|
description: predefined mailbox quota in `add mailbox` form
|
|
type: number
|
|
description:
|
|
description: Description of domain
|
|
type: string
|
|
gal:
|
|
description: >-
|
|
is domain global address list active or not, it enables
|
|
shared contacts accross domain in SOGo webmail
|
|
type: boolean
|
|
mailboxes:
|
|
description: limit count of mailboxes associated with this domain
|
|
type: number
|
|
maxquota:
|
|
description: maximum quota per mailbox
|
|
type: number
|
|
quota:
|
|
description: maximum quota for this domain (for all mailboxes in sum)
|
|
type: number
|
|
relay_all_recipients:
|
|
description: >-
|
|
if not, them you have to create "dummy" mailbox for each
|
|
address to relay
|
|
type: boolean
|
|
relay_unknown_only:
|
|
description: Relay non-existing mailboxes only. Existing mailboxes will be delivered locally.
|
|
type: boolean
|
|
relayhost:
|
|
description: id of relayhost
|
|
type: number
|
|
rl_frame:
|
|
enum:
|
|
- s
|
|
- m
|
|
- h
|
|
- d
|
|
type: string
|
|
rl_value:
|
|
description: rate limit value
|
|
type: number
|
|
tags:
|
|
description: tags for this Domain
|
|
type: array
|
|
items:
|
|
type: string
|
|
type: object
|
|
items:
|
|
description: contains list of domain names you want update
|
|
type: array
|
|
items:
|
|
type: string
|
|
type: object
|
|
summary: Update domain
|
|
/api/v1/edit/domain/footer:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- mailbox
|
|
- edit
|
|
- domain_wide_footer
|
|
- domains:
|
|
- mailcow.tld
|
|
html: "<br>foo {= foo =}"
|
|
plain: "<foo {= foo =}"
|
|
mbox_exclude:
|
|
- moo@mailcow.tld
|
|
- null
|
|
msg:
|
|
- domain_footer_modified
|
|
- mailcow.tld
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Domains
|
|
description: >-
|
|
You can update the footer of one or more domains per request.
|
|
operationId: Update domain wide footer
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
attr:
|
|
html: "<br>foo {= foo =}"
|
|
plain: "foo {= foo =}"
|
|
mbox_exclude:
|
|
- moo@mailcow.tld
|
|
items: mailcow.tld
|
|
properties:
|
|
attr:
|
|
properties:
|
|
html:
|
|
description: Footer text in HTML format
|
|
type: string
|
|
plain:
|
|
description: Footer text in PLAIN text format
|
|
type: string
|
|
mbox_exclude:
|
|
description: Array of mailboxes to exclude from domain wide footer
|
|
type: object
|
|
type: object
|
|
items:
|
|
description: contains a list of domain names where you want to update the footer
|
|
type: array
|
|
items:
|
|
type: string
|
|
type: object
|
|
summary: Update domain wide footer
|
|
/api/v1/edit/fail2ban:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
"*/*":
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Fail2Ban
|
|
description: >-
|
|
Using this endpoint you can edit the Fail2Ban config and black or
|
|
whitelist new ips.
|
|
operationId: Edit Fail2Ban
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
attr:
|
|
ban_time: "86400"
|
|
ban_time_increment: "1"
|
|
blacklist: "10.100.6.5/32,10.100.8.4/32"
|
|
max_attempts: "5"
|
|
max_ban_time: "86400"
|
|
netban_ipv4: "24"
|
|
netban_ipv6: "64"
|
|
retry_window: "600"
|
|
whitelist: mailcow.tld
|
|
items: none
|
|
properties:
|
|
attr:
|
|
description: array containing the fail2ban settings
|
|
properties:
|
|
backlist:
|
|
description: the backlisted ips or hostnames separated by comma
|
|
type: string
|
|
ban_time:
|
|
description: the time an ip should be banned
|
|
type: number
|
|
ban_time_increment:
|
|
description: if the time of the ban should increase each time
|
|
type: boolean
|
|
max_attempts:
|
|
description: the maximum numbe of wrong logins before a ip is banned
|
|
type: number
|
|
max_ban_time:
|
|
description: the maximum time an ip should be banned
|
|
type: number
|
|
netban_ipv4:
|
|
description: the networks mask to ban for ipv4
|
|
type: number
|
|
netban_ipv6:
|
|
description: the networks mask to ban for ipv6
|
|
type: number
|
|
retry_window:
|
|
description: >-
|
|
the maximum time in which a ip as to login with false
|
|
credentials to be banned
|
|
type: number
|
|
whitelist:
|
|
description: whitelisted ips or hostnames sepereated by comma
|
|
type: string
|
|
type: object
|
|
items:
|
|
description: has to be none
|
|
type: object
|
|
summary: Edit Fail2Ban
|
|
/api/v1/edit/mailbox:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- mailbox
|
|
- edit
|
|
- mailbox
|
|
- active: "1"
|
|
force_pw_update: "0"
|
|
name: Full name
|
|
password: "*"
|
|
password2: "*"
|
|
quota: "3072"
|
|
sender_acl:
|
|
- default
|
|
- info@domain2.tld
|
|
- domain3.tld
|
|
- "*"
|
|
sogo_access: "1"
|
|
username:
|
|
- info@domain.tld
|
|
tags: ["tag3", "tag4"]
|
|
- null
|
|
msg:
|
|
- mailbox_modified
|
|
- info@domain.tld
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Mailboxes
|
|
description: >-
|
|
You can update one or more mailboxes per request. You can also send just
|
|
attributes you want to change
|
|
operationId: Update mailbox
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
attr:
|
|
active: "1"
|
|
force_pw_update: "0"
|
|
name: Full name
|
|
password: ""
|
|
password2: ""
|
|
quota: "3072"
|
|
sender_acl:
|
|
- default
|
|
- info@domain2.tld
|
|
- domain3.tld
|
|
- "*"
|
|
sogo_access: "1"
|
|
tags: ["tag3", "tag4"]
|
|
items:
|
|
- info@domain.tld
|
|
properties:
|
|
attr:
|
|
properties:
|
|
active:
|
|
description: is mailbox active or not
|
|
type: boolean
|
|
force_pw_update:
|
|
description: force user to change password on next login
|
|
type: boolean
|
|
name:
|
|
description: Full name of the mailbox user
|
|
type: string
|
|
password2:
|
|
description: new mailbox password for confirmation
|
|
type: string
|
|
password:
|
|
description: new mailbox password
|
|
type: string
|
|
quota:
|
|
description: mailbox quota
|
|
type: number
|
|
sender_acl:
|
|
description: list of allowed send from addresses
|
|
type: object
|
|
sogo_access:
|
|
description: is access to SOGo webmail active or not
|
|
type: boolean
|
|
type: object
|
|
items:
|
|
description: contains list of mailboxes you want update
|
|
type: object
|
|
type: object
|
|
summary: Update mailbox
|
|
/api/v1/edit/mailbox/custom-attribute:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- mailbox
|
|
- edit
|
|
- mailbox_custom_attribute
|
|
- mailboxes:
|
|
- moo@mailcow.tld
|
|
attribute:
|
|
- role
|
|
- foo
|
|
value:
|
|
- cow
|
|
- bar
|
|
- null
|
|
msg:
|
|
- mailbox_modified
|
|
- moo@mailcow.tld
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Mailboxes
|
|
description: >-
|
|
You can update custom attributes of one or more mailboxes per request.
|
|
operationId: Update mailbox custom attributes
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
attr:
|
|
attribute:
|
|
- role
|
|
- foo
|
|
value:
|
|
- cow
|
|
- bar
|
|
items:
|
|
- moo@mailcow.tld
|
|
properties:
|
|
attr:
|
|
properties:
|
|
attribute:
|
|
description: Array of attribute keys
|
|
type: object
|
|
value:
|
|
description: Array of attribute values
|
|
type: object
|
|
type: object
|
|
items:
|
|
description: contains list of mailboxes you want update
|
|
type: object
|
|
type: object
|
|
summary: Update mailbox custom attributes
|
|
/api/v1/edit/mailq:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
msg: Task completed
|
|
type: success
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Queue Manager
|
|
description: >-
|
|
Using this API you can flush the current mail queue. This will try to
|
|
deliver all mails currently in it.
|
|
|
|
This API uses the command: `postqueue -f`
|
|
operationId: Flush Queue
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
action: flush
|
|
properties:
|
|
action:
|
|
description: use flush to flush the mail queue
|
|
type: string
|
|
type: object
|
|
summary: Flush Queue
|
|
/api/v1/edit/pushover:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- pushover
|
|
- edit
|
|
- active: "0"
|
|
evaluate_x_prio: "0"
|
|
key: 21e8918e1jksdjcpis712
|
|
only_x_prio: "0"
|
|
sound: "pushover"
|
|
senders: ""
|
|
senders_regex: ""
|
|
text: ""
|
|
title: Mail
|
|
token: 9023e2ohcwed27d1idu2
|
|
username:
|
|
- info@domain.tld
|
|
msg: pushover_settings_edited
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Mailboxes
|
|
description: >-
|
|
Using this endpoint it is possible to update the pushover settings for
|
|
mailboxes
|
|
operationId: Update Pushover settings
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
attr:
|
|
active: "0"
|
|
evaluate_x_prio: "0"
|
|
key: 21e8918e1jksdjcpis712
|
|
only_x_prio: "0"
|
|
sound: "pushover"
|
|
senders: ""
|
|
senders_regex: ""
|
|
text: ""
|
|
title: Mail
|
|
token: 9023e2ohcwed27d1idu2
|
|
items: info@domain.tld
|
|
properties:
|
|
attr:
|
|
properties:
|
|
active:
|
|
description: Enables pushover 1 disable pushover 0
|
|
type: number
|
|
evaluate_x_prio:
|
|
description: Send the Push with High priority
|
|
type: number
|
|
key:
|
|
description: Pushover key
|
|
type: string
|
|
only_x_prio:
|
|
description: Only send push for prio mails
|
|
type: number
|
|
sound:
|
|
description: Set notification sound
|
|
type: string
|
|
senders:
|
|
description: Only send push for emails from these senders
|
|
type: string
|
|
senders_regex:
|
|
description: Regex to match senders for which a push will be send
|
|
type: string
|
|
text:
|
|
description: Custom push noficiation text
|
|
type: string
|
|
title:
|
|
description: Push title
|
|
type: string
|
|
token:
|
|
description: Pushover token
|
|
type: string
|
|
type: object
|
|
items:
|
|
description: contains list of mailboxes you want to delete
|
|
type: object
|
|
type: object
|
|
summary: Update Pushover settings
|
|
/api/v1/edit/quarantine_notification:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Mailboxes
|
|
description: You can update one or more mailboxes per request.
|
|
operationId: Quarantine Notifications
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
attr:
|
|
quarantine_notification: hourly
|
|
items:
|
|
anyOf:
|
|
- mailbox1@domain.tld
|
|
- mailbox2@domain.tld
|
|
properties:
|
|
attr:
|
|
properties:
|
|
quarantine_notification:
|
|
description: recurrence
|
|
enum:
|
|
- hourly
|
|
- daily
|
|
- weekly
|
|
- never
|
|
type: string
|
|
type: object
|
|
items:
|
|
description: >-
|
|
contains list of mailboxes you want set qurantine
|
|
notifications
|
|
type: object
|
|
type: object
|
|
summary: Quarantine Notifications
|
|
/api/v1/edit/syncjob:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
log:
|
|
- entity
|
|
- action
|
|
- object
|
|
msg:
|
|
- message
|
|
- entity name
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Sync jobs
|
|
description: >-
|
|
You can update one or more sync jobs per request. You can also send just
|
|
attributes you want to change.
|
|
operationId: Update sync job
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
attr:
|
|
active: "1"
|
|
automap: "1"
|
|
custom_params: ""
|
|
delete1: "0"
|
|
delete2: "0"
|
|
delete2duplicates: "1"
|
|
enc1: SSL
|
|
exclude: (?i)spam|(?i)junk
|
|
host1: imap.server.tld
|
|
maxage: "0"
|
|
maxbytespersecond: "0"
|
|
mins_interval: "20"
|
|
password1: supersecret
|
|
port1: "993"
|
|
skipcrossduplicates: "0"
|
|
subfolder2: External
|
|
subscribeall: "1"
|
|
timeout1: "600"
|
|
timeout2: "600"
|
|
user1: username
|
|
items: "1"
|
|
properties:
|
|
attr:
|
|
properties:
|
|
active:
|
|
description: Is sync job active
|
|
type: boolean
|
|
automap:
|
|
description: >-
|
|
Try to automap folders ("Sent items", "Sent" => "Sent"
|
|
etc.)
|
|
type: boolean
|
|
custom_params:
|
|
description: Custom parameters passed to imapsync command
|
|
type: string
|
|
delete1:
|
|
description: Delete from source when completed
|
|
type: boolean
|
|
delete2:
|
|
description: Delete messages on destination that are not on source
|
|
type: boolean
|
|
delete2duplicates:
|
|
description: Delete duplicates on destination
|
|
type: boolean
|
|
enc1:
|
|
description: Encryption
|
|
enum:
|
|
- TLS
|
|
- SSL
|
|
- PLAIN
|
|
type: string
|
|
exclude:
|
|
description: Exclude objects (regex)
|
|
type: string
|
|
host1:
|
|
description: Hostname
|
|
type: string
|
|
maxage:
|
|
description: >-
|
|
Maximum age of messages in days that will be polled from
|
|
remote (0 = ignore age)
|
|
type: number
|
|
maxbytespersecond:
|
|
description: Max. bytes per second (0 = unlimited)
|
|
type: number
|
|
mins_interval:
|
|
description: Interval (min)
|
|
type: number
|
|
password1:
|
|
description: Password
|
|
type: string
|
|
port1:
|
|
description: Port
|
|
type: string
|
|
skipcrossduplicates:
|
|
description: >-
|
|
Skip duplicate messages across folders (first come,
|
|
first serve)
|
|
type: boolean
|
|
subfolder2:
|
|
description: >-
|
|
Sync into subfolder on destination (empty = do not use
|
|
subfolder)
|
|
type: string
|
|
subscribeall:
|
|
description: Subscribe all folders
|
|
type: boolean
|
|
timeout1:
|
|
description: Timeout for connection to remote host
|
|
type: number
|
|
timeout2:
|
|
description: Timeout for connection to local host
|
|
type: number
|
|
user1:
|
|
description: Username
|
|
type: string
|
|
type: object
|
|
items:
|
|
description: contains list of aliases you want update
|
|
type: object
|
|
type: object
|
|
summary: Update sync job
|
|
/api/v1/edit/user-acl:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- log:
|
|
- acl
|
|
- edit
|
|
- user
|
|
- user_acl:
|
|
- spam_alias
|
|
- tls_policy
|
|
- spam_score
|
|
- spam_policy
|
|
- delimiter_action
|
|
- syncjobs
|
|
- eas_reset
|
|
- quarantine
|
|
- sogo_profile_reset
|
|
- quarantine_attachments
|
|
- quarantine_notification
|
|
- app_passwds
|
|
- pushover
|
|
username:
|
|
- info@domain.tld
|
|
msg:
|
|
- acl_saved
|
|
- info@domain.tld
|
|
type: success
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Mailboxes
|
|
description: Using this endpoints its possible to update the ACL's for mailboxes
|
|
operationId: Update mailbox ACL
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
attr:
|
|
user_acl:
|
|
- spam_alias
|
|
- tls_policy
|
|
- spam_score
|
|
- spam_policy
|
|
- delimiter_action
|
|
- syncjobs
|
|
- eas_reset
|
|
- quarantine
|
|
- sogo_profile_reset
|
|
- quarantine_attachments
|
|
- quarantine_notification
|
|
- app_passwds
|
|
- pushover
|
|
items: info@domain.tld
|
|
properties:
|
|
attr:
|
|
properties:
|
|
user_acl:
|
|
description: contains a list of active user acls
|
|
type: object
|
|
type: object
|
|
items:
|
|
description: contains list of mailboxes you want to delete
|
|
type: object
|
|
type: object
|
|
summary: Update mailbox ACL
|
|
"/api/v1/get/alias/{id}":
|
|
get:
|
|
parameters:
|
|
- description: id of entry you want to get
|
|
example: all
|
|
in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
enum:
|
|
- all
|
|
- "1"
|
|
- "2"
|
|
- "5"
|
|
- "10"
|
|
type: string
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- active: "1"
|
|
address: alias@domain.tld
|
|
created: "2019-04-04 19:29:49"
|
|
domain: domain.tld
|
|
goto: destination@domain.tld
|
|
id: 6
|
|
in_primary_domain: ""
|
|
is_catch_all: 0
|
|
modified: null
|
|
private_comment: null
|
|
public_comment: null
|
|
- active: "1"
|
|
address: "@domain.tld"
|
|
created: "2019-04-27 13:42:39"
|
|
domain: domain.tld
|
|
goto: destination@domain.tld
|
|
id: 10
|
|
in_primary_domain: ""
|
|
is_catch_all: 1
|
|
modified: null
|
|
private_comment: null
|
|
public_comment: null
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Aliases
|
|
description: You can list mailbox aliases existing in system.
|
|
operationId: Get aliases
|
|
summary: Get aliases
|
|
"/api/v1/get/time_limited_aliases/{mailbox}":
|
|
get:
|
|
parameters:
|
|
- description: mailbox you want to get aliasses from
|
|
example: domain.tld
|
|
in: path
|
|
schema:
|
|
type: string
|
|
name: mailbox
|
|
required: true
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- address: alias@domain.tld
|
|
goto: destination@domain.tld
|
|
validity: 1668251246
|
|
created: "2021-11-12 12:07:26"
|
|
modified: null
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Aliases
|
|
description: You can list time limited mailbox aliases existing in system.
|
|
operationId: Get time limited aliases
|
|
summary: Get time limited aliases
|
|
"/api/v1/get/app-passwd/all/{mailbox}":
|
|
get:
|
|
parameters:
|
|
- description: mailbox of entry you want to get
|
|
example: hello@mailcow.email
|
|
in: path
|
|
name: mailbox
|
|
required: true
|
|
schema:
|
|
enum:
|
|
- hello@mailcow.email
|
|
type: string
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- active: "1"
|
|
created: "2019-12-21 16:04:55"
|
|
domain: mailcow.email
|
|
id: 2
|
|
mailbox: hello@mailcow.email
|
|
modified: null
|
|
name: emclient
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- App Passwords
|
|
description: >-
|
|
Using this endpoint you can get all app passwords from a specific
|
|
mailbox.
|
|
operationId: Get App Password
|
|
summary: Get App Password
|
|
"/api/v1/get/bcc/{id}":
|
|
get:
|
|
parameters:
|
|
- description: id of entry you want to get
|
|
example: all
|
|
in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
enum:
|
|
- all
|
|
- "1"
|
|
- "2"
|
|
- "5"
|
|
- "10"
|
|
type: string
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- active: "1"
|
|
bcc_dest: bcc@awesomecow.tld
|
|
created: "2019-10-02 21:44:34"
|
|
domain: mailcow.tld
|
|
id: 3
|
|
local_dest: "@mailcow.tld"
|
|
modified: null
|
|
type: sender
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Address Rewriting
|
|
description: Using this endpoint you can get all BCC maps.
|
|
operationId: Get BCC Map
|
|
summary: Get BCC Map
|
|
"/api/v1/get/dkim/{domain}":
|
|
get:
|
|
parameters:
|
|
- description: name of domain
|
|
in: path
|
|
name: domain
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
dkim_selector: dkim
|
|
dkim_txt: >-
|
|
v=DKIM1;k=rsa;t=s;s=email;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA21tUSjyasQy/hJmVjPnlRGfzx6TPhYj8mXY9DVOzSAE64Gddw/GnE/GcCR6WXNT23u9q4zPnz1IPoNt5kFOps8vg/iNqrcH++494noaZuYyFPPFnebkfryO4EvEyxC/c66qts+gnOUml+M8uv5WObBJld2gG12jLwFM0263J/N6J8LuUsaXOB2uCIfx8Nf4zjuJ6Ieez2uyHNK5dXjDLfKA4mTr+EEK6W6e34M4KN1liWM6r9Oy5S1FlLrD42VpURxxBZtBiEtaJPEKSQuk6GQz8ihu7W20Yr53tyCdaORu8dhxXVUWVf+GjuuMEdAmQCjYkarXdYCrt56Psw703kwIDAQAB
|
|
length: "2048"
|
|
privkey: ""
|
|
pubkey: >-
|
|
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA21tUSjyasQy/hJmVjPnlRGfzx6TPhYj8mXY9DVOzSAE64Gddw/GnE/GcCR6WXNT23u9q4zPnz1IPoNt5kFOps8vg/iNqrcH++494noaZuYyFPPFnebkfryO4EvEyxC/c66qts+gnOUml+M8uv5WObBJld2gG12jLwFM0263J/N6J8LuUsaXOB2uCIfx8Nf4zjuJ6Ieez2uyHNK5dXjDLfKA4mTr+EEK6W6e34M4KN1liWM6r9Oy5S1FlLrD42VpURxxBZtBiEtaJPEKSQuk6GQz8ihu7W20Yr53tyCdaORu8dhxXVUWVf+GjuuMEdAmQCjYkarXdYCrt56Psw703kwIDAQAB
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- DKIM
|
|
description: >-
|
|
Using this endpoint you can get the DKIM public key for a specific
|
|
domain.
|
|
operationId: Get DKIM Key
|
|
summary: Get DKIM Key
|
|
/api/v1/get/domain-admin/all:
|
|
get:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- active: "1"
|
|
created: "2019-10-02 10:29:41"
|
|
selected_domains:
|
|
- mailcow.tld
|
|
tfa_active: "0"
|
|
unselected_domains:
|
|
- awesomemailcow.de
|
|
- mailcowisgreat.de
|
|
username: testadmin
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Domain admin
|
|
description: ""
|
|
operationId: Get Domain Admins
|
|
summary: Get Domain Admins
|
|
"/api/v1/get/domain/{id}":
|
|
get:
|
|
parameters:
|
|
- description: id of entry you want to get
|
|
example: all
|
|
in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
enum:
|
|
- all
|
|
- mailcow.tld
|
|
type: string
|
|
- description: comma seperated list of tags to filter by
|
|
example: "tag1,tag2"
|
|
in: query
|
|
name: tags
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- active: "1"
|
|
aliases_in_domain: 0
|
|
aliases_left: 400
|
|
backupmx: "0"
|
|
bytes_total: "5076666944"
|
|
def_new_mailbox_quota: 3221225472
|
|
def_quota_for_mbox: 3221225472
|
|
description: Some description
|
|
domain_name: domain.tld
|
|
gal: "0"
|
|
max_new_mailbox_quota: 10737418240
|
|
max_num_aliases_for_domain: 400
|
|
max_num_mboxes_for_domain: 10
|
|
max_quota_for_domain: 10737418240
|
|
max_quota_for_mbox: 10737418240
|
|
mboxes_in_domain: 0
|
|
mboxes_left: 10
|
|
msgs_total: "172440"
|
|
quota_used_in_domain: "0"
|
|
relay_all_recipients: "0"
|
|
relayhost: "0"
|
|
rl: false
|
|
tags: ["tag1", "tag2"]
|
|
- active: "1"
|
|
aliases_in_domain: 0
|
|
aliases_left: 400
|
|
backupmx: "1"
|
|
bytes_total: "5076666944"
|
|
def_new_mailbox_quota: 3221225472
|
|
def_quota_for_mbox: 3221225472
|
|
description: domain description
|
|
domain_name: domain2.tld
|
|
gal: "0"
|
|
max_new_mailbox_quota: 10737418240
|
|
max_num_aliases_for_domain: 400
|
|
max_num_mboxes_for_domain: 10
|
|
max_quota_for_domain: 10737418240
|
|
max_quota_for_mbox: 10737418240
|
|
mboxes_in_domain: 0
|
|
mboxes_left: 10
|
|
msgs_total: "172440"
|
|
quota_used_in_domain: "0"
|
|
relay_all_recipients: "0"
|
|
relayhost: "0"
|
|
rl: false
|
|
tags: ["tag3", "tag4"]
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Domains
|
|
description: You can list all domains existing in system.
|
|
operationId: Get domains
|
|
summary: Get domains
|
|
/api/v1/get/fail2ban:
|
|
get:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
ban_time: 604800
|
|
ban_time_increment: 1
|
|
blacklist: |-
|
|
45.82.153.37/32
|
|
92.118.38.52/32
|
|
max_attempts: 1
|
|
max_ban_time: 604800
|
|
netban_ipv4: 32
|
|
netban_ipv6: 128
|
|
perm_bans:
|
|
- 45.82.153.37/32
|
|
- 92.118.38.52/32
|
|
retry_window: 7200
|
|
whitelist: 1.1.1.1
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Fail2Ban
|
|
description: Gets the current Fail2Ban configuration.
|
|
operationId: Get Fail2Ban Config
|
|
summary: Get Fail2Ban Config
|
|
/api/v1/get/fwdhost/all:
|
|
get:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- host: 5.1.76.202
|
|
keep_spam: "yes"
|
|
source: hosted.mailcow.de
|
|
- host: "2a00:f820:417::202"
|
|
keep_spam: "yes"
|
|
source: hosted.mailcow.de
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Fordwarding Hosts
|
|
description: You can list all Forwarding Hosts in your mailcow.
|
|
operationId: Get Forwarding Hosts
|
|
summary: Get Forwarding Hosts
|
|
"/api/v1/get/logs/acme/{count}":
|
|
get:
|
|
parameters:
|
|
- description: Number of logs to return
|
|
in: path
|
|
name: count
|
|
required: true
|
|
schema:
|
|
type: number
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- message: >-
|
|
Certificate validation done, neither changed nor due for
|
|
renewal, sleeping for another day.
|
|
time: "1569927728"
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Logs
|
|
description: >-
|
|
This Api endpoint lists all ACME logs from issued Lets Enctypts
|
|
certificates.
|
|
|
|
Tip: You can limit how many logs you want to get by using `/<count>` at
|
|
the end of the api url.
|
|
operationId: Get ACME logs
|
|
summary: Get ACME logs
|
|
"/api/v1/get/logs/api/{count}":
|
|
get:
|
|
parameters:
|
|
- description: Number of logs to return
|
|
in: path
|
|
name: count
|
|
required: true
|
|
schema:
|
|
type: number
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- data: ""
|
|
method: GET
|
|
remote: 1.1.1.1
|
|
time: 1569939001
|
|
uri: /api/v1/get/logs/api/2
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Logs
|
|
description: >-
|
|
This Api endpoint lists all Api logs.
|
|
|
|
Tip: You can limit how many logs you want to get by using `/<count>` at
|
|
the end of the api url.
|
|
operationId: Get Api logs
|
|
summary: Get Api logs
|
|
"/api/v1/get/logs/autodiscover/{count}":
|
|
get:
|
|
parameters:
|
|
- description: Number of logs to return
|
|
in: path
|
|
name: count
|
|
required: true
|
|
schema:
|
|
type: number
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- service: activesync
|
|
time: 1569684212
|
|
ua: >-
|
|
Microsoft Office/16.0 (Windows NT 6.2; MAPICPL
|
|
16.0.11328; Pro)
|
|
user: awesome@mailcow.de
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Logs
|
|
description: >-
|
|
This Api endpoint lists all Autodiscover logs.
|
|
|
|
Tip: You can limit how many logs you want to get by using `/<count>` at
|
|
the end of the api url.
|
|
operationId: Get Autodiscover logs
|
|
summary: Get Autodiscover logs
|
|
"/api/v1/get/logs/dovecot/{count}":
|
|
get:
|
|
parameters:
|
|
- description: Number of logs to return
|
|
in: path
|
|
name: count
|
|
required: true
|
|
schema:
|
|
type: number
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- message: >-
|
|
managesieve-login: Disconnected (no auth attempts in 0
|
|
secs): user=<>, rip=172.22.1.3, lip=172.22.1.250
|
|
priority: info
|
|
program: dovecot
|
|
time: "1569938740"
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Logs
|
|
description: >-
|
|
This Api endpoint lists all Dovecot logs.
|
|
|
|
Tip: You can limit how many logs you want to get by using `/<count>` at
|
|
the end of the api url.
|
|
operationId: Get Dovecot logs
|
|
summary: Get Dovecot logs
|
|
"/api/v1/get/logs/netfilter/{count}":
|
|
get:
|
|
parameters:
|
|
- description: Number of logs to return
|
|
in: path
|
|
name: count
|
|
required: true
|
|
schema:
|
|
type: number
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- message: "Whitelist was changed, it has 1 entries"
|
|
priority: info
|
|
time: 1569754911
|
|
- message: Add host/network 1.1.1.1/32 to blacklist
|
|
priority: crit
|
|
time: 1569754911
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Logs
|
|
description: >-
|
|
This Api endpoint lists all Netfilter logs.
|
|
|
|
Tip: You can limit how many logs you want to get by using `/<count>` at
|
|
the end of the api url.
|
|
operationId: Get Netfilter logs
|
|
summary: Get Netfilter logs
|
|
"/api/v1/get/logs/postfix/{count}":
|
|
get:
|
|
parameters:
|
|
- description: Number of logs to return
|
|
in: path
|
|
name: count
|
|
required: true
|
|
schema:
|
|
type: number
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- message: "EF1711500458: removed"
|
|
priority: info
|
|
program: postfix/qmgr
|
|
time: "1569937433"
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Logs
|
|
description: >-
|
|
This Api endpoint lists all Postfix logs.
|
|
|
|
Tip: You can limit how many logs you want to get by using `/<count>` at
|
|
the end of the api url.
|
|
operationId: Get Postfix logs
|
|
summary: Get Postfix logs
|
|
"/api/v1/get/logs/ratelimited/{count}":
|
|
get:
|
|
parameters:
|
|
- description: Number of logs to return
|
|
in: path
|
|
name: count
|
|
required: true
|
|
schema:
|
|
type: number
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- from: awesome@mailcow.email
|
|
header_from: '"Awesome" <awesome@mailcow.email>'
|
|
header_subject: Mailcow is amazing
|
|
ip: 172.22.1.248
|
|
message_id: 6a-5d892500-7-240abd80@90879116
|
|
qid: E3CF91500458
|
|
rcpt: hello@mailcow.email
|
|
rl_hash: RLsdz3tuabozgd4oacbdh8kc78
|
|
rl_info: mailcow(RLsdz3tuabozgd4oacbdh8kc78)
|
|
rl_name: mailcow
|
|
time: 1569269003
|
|
user: awesome@mailcow.email
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Logs
|
|
description: >-
|
|
This Api endpoint lists all Ratelimit logs.
|
|
|
|
Tip: You can limit how many logs you want to get by using `/<count>` at
|
|
the end of the api url.
|
|
operationId: Get Ratelimit logs
|
|
summary: Get Ratelimit logs
|
|
"/api/v1/get/logs/rspamd-history/{count}":
|
|
get:
|
|
parameters:
|
|
- description: Number of logs to return
|
|
in: path
|
|
name: count
|
|
required: true
|
|
schema:
|
|
type: number
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Logs
|
|
description: >-
|
|
This Api endpoint lists all Rspamd logs.
|
|
|
|
Tip: You can limit how many logs you want to get by using `/<count>` at
|
|
the end of the api url.
|
|
operationId: Get Rspamd logs
|
|
summary: Get Rspamd logs
|
|
"/api/v1/get/logs/sogo/{count}":
|
|
get:
|
|
parameters:
|
|
- description: Number of logs to return
|
|
in: path
|
|
name: count
|
|
required: true
|
|
schema:
|
|
type: number
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- message: >-
|
|
[109]:
|
|
mailcowdockerized_watchdog-mailcow_1.mailcowdockerized_mailcow-network
|
|
"GET /SOGo.index/ HTTP/1.1" 200 2531/0 0.005 - - 0
|
|
priority: notice
|
|
program: sogod
|
|
time: "1569938874"
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Logs
|
|
description: >-
|
|
This Api endpoint lists all SOGo logs.
|
|
|
|
Tip: You can limit how many logs you want to get by using `/<count>` at
|
|
the end of the api url.
|
|
operationId: Get SOGo logs
|
|
summary: Get SOGo logs
|
|
"/api/v1/get/logs/watchdog/{count}":
|
|
get:
|
|
parameters:
|
|
- description: Number of logs to return
|
|
in: path
|
|
name: count
|
|
required: true
|
|
schema:
|
|
type: number
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- hpdiff: "0"
|
|
hpnow: "1"
|
|
hptotal: "1"
|
|
lvl: "100"
|
|
service: Fail2ban
|
|
time: "1569938958"
|
|
- hpdiff: "0"
|
|
hpnow: "5"
|
|
hptotal: "5"
|
|
lvl: "100"
|
|
service: Rspamd
|
|
time: "1569938956"
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Logs
|
|
description: >-
|
|
This Api endpoint lists all Watchdog logs.
|
|
|
|
Tip: You can limit how many logs you want to get by using `/<count>` at
|
|
the end of the api url.
|
|
operationId: Get Watchdog logs
|
|
summary: Get Watchdog logs
|
|
"/api/v1/get/mailbox/{id}":
|
|
get:
|
|
parameters:
|
|
- description: id of entry you want to get
|
|
example: all
|
|
in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
enum:
|
|
- all
|
|
- user@domain.tld
|
|
type: string
|
|
- description: comma seperated list of tags to filter by
|
|
example: "tag1,tag2"
|
|
in: query
|
|
name: tags
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- active: "1"
|
|
attributes:
|
|
force_pw_update: "0"
|
|
mailbox_format: "maildir:"
|
|
quarantine_notification: never
|
|
sogo_access: "1"
|
|
tls_enforce_in: "0"
|
|
tls_enforce_out: "0"
|
|
domain: doman3.tld
|
|
is_relayed: 0
|
|
local_part: info
|
|
max_new_quota: 10737418240
|
|
messages: 0
|
|
name: Full name
|
|
percent_class: success
|
|
percent_in_use: 0
|
|
quota: 3221225472
|
|
quota_used: 0
|
|
rl: false
|
|
spam_aliases: 0
|
|
username: info@doman3.tld
|
|
tags: ["tag1", "tag2"]
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Mailboxes
|
|
description: You can list all mailboxes existing in system.
|
|
operationId: Get mailboxes
|
|
summary: Get mailboxes
|
|
/api/v1/get/mailq/all:
|
|
get:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- arrival_time: 1570091234
|
|
message_size: 1848
|
|
queue_id: B98C6260CA1
|
|
queue_name: incoming
|
|
recipients:
|
|
- recipient@awesomecow.tld
|
|
sender: sender@mailcow.tld
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Queue Manager
|
|
description: Get the current mail queue and everything it contains.
|
|
operationId: Get Queue
|
|
summary: Get Queue
|
|
"/api/v1/get/oauth2-client/{id}":
|
|
get:
|
|
parameters:
|
|
- description: id of entry you want to get
|
|
example: all
|
|
in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
enum:
|
|
- all
|
|
- "1"
|
|
- "2"
|
|
- "5"
|
|
- "10"
|
|
type: string
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- client_id: 17c76aaa88c0
|
|
client_secret: 73fc668a88147e32a31ff80c
|
|
grant_types: null
|
|
id: 1
|
|
redirect_uri: "https://mailcow.tld"
|
|
scope: profile
|
|
user_id: null
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- oAuth Clients
|
|
description: Using this endpoint you can get all oAuth clients.
|
|
operationId: Get oAuth Clients
|
|
summary: Get oAuth Clients
|
|
"/api/v1/get/policy_bl_domain/{domain}":
|
|
get:
|
|
parameters:
|
|
- description: name of domain
|
|
in: path
|
|
name: domain
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- object: domain.tld
|
|
prefid: 2
|
|
value: "*@baddomain.tld"
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Domain antispam policies
|
|
description: You can list all blacklist policies per domain.
|
|
operationId: List blacklist domain policy
|
|
summary: List blacklist domain policy
|
|
"/api/v1/get/policy_wl_domain/{domain}":
|
|
get:
|
|
parameters:
|
|
- description: name of domain
|
|
in: path
|
|
name: domain
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- object: domain.tld
|
|
prefid: 1
|
|
value: "*@gooddomain.tld"
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Domain antispam policies
|
|
description: You can list all whitelist policies per domain.
|
|
operationId: List whitelist domain policy
|
|
summary: List whitelist domain policy
|
|
/api/v1/get/quarantine/all:
|
|
get:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
created: 1572688831
|
|
id: 33
|
|
notified: 1
|
|
qid: 8224615004C1
|
|
rcpt: admin@domain.tld
|
|
score: 15.48
|
|
sender: bounces@send.domain.tld
|
|
subject: mailcow is awesome
|
|
virus_flag: 0
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Quarantine
|
|
description: Get all mails that are currently in Quarantine.
|
|
operationId: Get mails in Quarantine
|
|
summary: Get mails in Quarantine
|
|
"/api/v1/get/recipient_map/{id}":
|
|
get:
|
|
parameters:
|
|
- description: id of entry you want to get
|
|
example: all
|
|
in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
enum:
|
|
- all
|
|
- "1"
|
|
- "2"
|
|
- "5"
|
|
- "10"
|
|
type: string
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- active: "1"
|
|
created: "2019-10-02 22:06:29"
|
|
id: 3
|
|
modified: null
|
|
recipient_map_new: target@mailcow.tld
|
|
recipient_map_old: recipient@mailcow.tld
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Address Rewriting
|
|
description: Using this endpoint you can get all recipient maps.
|
|
operationId: Get Recipient Map
|
|
summary: Get Recipient Map
|
|
"/api/v1/get/relayhost/{id}":
|
|
get:
|
|
parameters:
|
|
- description: id of entry you want to get
|
|
example: all
|
|
in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
enum:
|
|
- all
|
|
- "1"
|
|
- "2"
|
|
- "5"
|
|
- "10"
|
|
type: string
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- active: "1"
|
|
hostname: "mailcow.tld:25"
|
|
id: 1
|
|
password: supersecurepassword
|
|
password_short: tes...
|
|
used_by_domains: ""
|
|
username: testuser
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Routing
|
|
description: Using this endpoint you can get all Sender-Dependent Transports.
|
|
operationId: Get Sender-Dependent Transports
|
|
summary: Get Sender-Dependent Transports
|
|
/api/v1/get/resource/all:
|
|
get:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- active: "1"
|
|
description: test
|
|
domain: mailcow.tld
|
|
kind: location
|
|
local_part: test
|
|
multiple_bookings: 0
|
|
name: test@mailcow.tld
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Resources
|
|
description: Using this endpoint you can get all Resources.
|
|
operationId: Get Resources
|
|
summary: Get Resources
|
|
"/api/v1/get/rl-mbox/{mailbox}":
|
|
get:
|
|
parameters:
|
|
- description: name of mailbox or all
|
|
in: path
|
|
name: mailbox
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- frame: s
|
|
mailbox: leon@mailcow.tld
|
|
value: "5"
|
|
- frame: s
|
|
mailbox: lisa@mailcow.tld
|
|
value: "3"
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Ratelimits
|
|
description: >-
|
|
Using this endpoint you can get the ratelimits for a certain mailbox.
|
|
You can use all for all mailboxes.
|
|
operationId: Get mailbox ratelimits
|
|
summary: Get mailbox ratelimits
|
|
"/api/v1/get/rl-domain/{domain}":
|
|
get:
|
|
parameters:
|
|
- description: name of domain or all
|
|
in: path
|
|
name: domain
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- frame: s
|
|
domain: domain.tld
|
|
value: "5"
|
|
- frame: s
|
|
mailbox: domain2.tld
|
|
value: "3"
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Ratelimits
|
|
description: >-
|
|
Using this endpoint you can get the ratelimits for a certain domains.
|
|
You can use all for all domain.
|
|
operationId: Get domain ratelimits
|
|
summary: Get domain ratelimits
|
|
/api/v1/edit/rl-mbox/:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- type: success
|
|
log:
|
|
- ratelimit
|
|
- edit
|
|
- mailbox
|
|
- object:
|
|
- info@domain.tld
|
|
rl_value: "10"
|
|
rl_frame: h
|
|
msg:
|
|
- rl_saved
|
|
- info@domain.tld
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Ratelimits
|
|
description: >-
|
|
Using this endpoint you can edit the ratelimits for a certain mailbox.
|
|
operationId: Edit mailbox ratelimits
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
attr:
|
|
rl_value: "10"
|
|
rl_frame: "h"
|
|
items:
|
|
- info@domain.tld
|
|
properties:
|
|
attr:
|
|
properties:
|
|
rl_frame:
|
|
description: contains the frame for the ratelimit h,s,m
|
|
type: string
|
|
rl_value:
|
|
description: contains the rate for the ratelimit 10,20,50,1
|
|
type: number
|
|
type: object
|
|
items:
|
|
description: contains list of mailboxes you want to edit the ratelimit of
|
|
type: object
|
|
type: object
|
|
summary: Edit mailbox ratelimits
|
|
/api/v1/edit/rl-domain/:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- type: success
|
|
- log:
|
|
- ratelimit
|
|
- edit
|
|
- domain
|
|
- object:
|
|
- domain.tld
|
|
rl_value: "50"
|
|
rl_frame: "h"
|
|
msg:
|
|
- rl_saved
|
|
- domain.tld
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Ratelimits
|
|
description: >-
|
|
Using this endpoint you can edit the ratelimits for a certain domains.
|
|
operationId: Edit domain ratelimits
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
attr:
|
|
rl_value: "10"
|
|
rl_frame: "h"
|
|
items:
|
|
- domain.tld
|
|
properties:
|
|
attr:
|
|
properties:
|
|
rl_frame:
|
|
description: contains the frame for the ratelimit h,s,m
|
|
type: string
|
|
rl_value:
|
|
description: contains the rate for the ratelimit 10,20,50,1
|
|
type: number
|
|
type: object
|
|
items:
|
|
description: contains list of domains you want to edit the ratelimit of
|
|
type: object
|
|
type: object
|
|
summary: Edit domain ratelimits
|
|
/api/v1/get/status/containers:
|
|
get:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
acme-mailcow:
|
|
container: acme-mailcow
|
|
image: "mailcow/acme:1.63"
|
|
started_at: "2019-12-22T21:00:08.270660275Z"
|
|
state: running
|
|
type: info
|
|
clamd-mailcow:
|
|
container: clamd-mailcow
|
|
image: "mailcow/clamd:1.35"
|
|
started_at: "2019-12-22T21:00:01.622856172Z"
|
|
state: running
|
|
type: info
|
|
dockerapi-mailcow:
|
|
container: dockerapi-mailcow
|
|
image: "mailcow/dockerapi:1.36"
|
|
started_at: "2019-12-22T20:59:59.984797808Z"
|
|
state: running
|
|
type: info
|
|
dovecot-mailcow:
|
|
container: dovecot-mailcow
|
|
image: "mailcow/dovecot:1.104"
|
|
started_at: "2019-12-22T21:00:08.988680259Z"
|
|
state: running
|
|
type: info
|
|
ipv6nat-mailcow:
|
|
container: ipv6nat-mailcow
|
|
image: robbertkl/ipv6nat
|
|
started_at: "2019-12-22T21:06:37.273225445Z"
|
|
state: running
|
|
type: info
|
|
memcached-mailcow:
|
|
container: memcached-mailcow
|
|
image: "memcached:alpine"
|
|
started_at: "2019-12-22T20:59:58.0907785Z"
|
|
state: running
|
|
type: info
|
|
mysql-mailcow:
|
|
container: mysql-mailcow
|
|
image: "mariadb:10.3"
|
|
started_at: "2019-12-22T21:00:02.201937528Z"
|
|
state: running
|
|
type: info
|
|
netfilter-mailcow:
|
|
container: netfilter-mailcow
|
|
image: "mailcow/netfilter:1.31"
|
|
started_at: "2019-12-22T21:00:09.851559297Z"
|
|
state: running
|
|
type: info
|
|
nginx-mailcow:
|
|
container: nginx-mailcow
|
|
image: "nginx:mainline-alpine"
|
|
started_at: "2019-12-22T21:00:12.9843038Z"
|
|
state: running
|
|
type: info
|
|
olefy-mailcow:
|
|
container: olefy-mailcow
|
|
image: "mailcow/olefy:1.2"
|
|
started_at: "2019-12-22T20:59:59.676259274Z"
|
|
state: running
|
|
type: info
|
|
php-fpm-mailcow:
|
|
container: php-fpm-mailcow
|
|
image: "mailcow/phpfpm:1.55"
|
|
started_at: "2019-12-22T21:00:00.955808957Z"
|
|
state: running
|
|
type: info
|
|
postfix-mailcow:
|
|
container: postfix-mailcow
|
|
image: "mailcow/postfix:1.44"
|
|
started_at: "2019-12-22T21:00:07.186717617Z"
|
|
state: running
|
|
type: info
|
|
redis-mailcow:
|
|
container: redis-mailcow
|
|
image: "redis:5-alpine"
|
|
started_at: "2019-12-22T20:59:56.827166834Z"
|
|
state: running
|
|
type: info
|
|
rspamd-mailcow:
|
|
container: rspamd-mailcow
|
|
image: "mailcow/rspamd:1.56"
|
|
started_at: "2019-12-22T21:00:12.456075355Z"
|
|
state: running
|
|
type: info
|
|
sogo-mailcow:
|
|
container: sogo-mailcow
|
|
image: "mailcow/sogo:1.65"
|
|
started_at: "2019-12-22T20:59:58.382274592Z"
|
|
state: running
|
|
type: info
|
|
solr-mailcow:
|
|
container: solr-mailcow
|
|
image: "mailcow/solr:1.7"
|
|
started_at: "2019-12-22T20:59:59.635413798Z"
|
|
state: running
|
|
type: info
|
|
unbound-mailcow:
|
|
container: unbound-mailcow
|
|
image: "mailcow/unbound:1.10"
|
|
started_at: "2019-12-22T20:59:58.760595825Z"
|
|
state: running
|
|
type: info
|
|
watchdog-mailcow:
|
|
container: watchdog-mailcow
|
|
image: "mailcow/watchdog:1.65"
|
|
started_at: "2019-12-22T20:59:56.028660382Z"
|
|
state: running
|
|
type: info
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Status
|
|
description: >-
|
|
Using this endpoint you can get the status of all containers and when
|
|
hey where started and a few other details.
|
|
operationId: Get container status
|
|
summary: Get container status
|
|
/api/v1/get/status/solr:
|
|
get:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
solr_documents: null
|
|
solr_enabled: false
|
|
solr_size: null
|
|
type: info
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Status
|
|
description: >-
|
|
Using this endpoint you can get the status of all containers and when
|
|
hey where started and a few other details.
|
|
operationId: Get solr status
|
|
summary: Get solr status
|
|
/api/v1/get/status/vmail:
|
|
get:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
disk: /dev/mapper/mail--vg-root
|
|
total: 41G
|
|
type: info
|
|
used: 11G
|
|
used_percent: 28%
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Status
|
|
description: >-
|
|
Using this endpoint you can get the status of the vmail and the amount
|
|
of used storage.
|
|
operationId: Get vmail status
|
|
summary: Get vmail status
|
|
/api/v1/get/status/version:
|
|
get:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
version: "2022-04"
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Status
|
|
description: >-
|
|
Using this endpoint you can get the current running release of this
|
|
instance.
|
|
operationId: Get version status
|
|
summary: Get version status
|
|
/api/v1/get/syncjobs/all/no_log:
|
|
get:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- active: "1"
|
|
authmd51: 0
|
|
authmech1: PLAIN
|
|
automap: 1
|
|
created: "2019-05-22 11:37:25"
|
|
custom_params: ""
|
|
delete1: 0
|
|
delete2: 0
|
|
delete2duplicates: 1
|
|
domain2: ""
|
|
enc1: TLS
|
|
exclude: (?i)spam|(?i)junk
|
|
host1: imap.server.tld
|
|
id: 1
|
|
is_running: 0
|
|
last_run: "2019-05-22 11:40:02"
|
|
log: ""
|
|
maxage: 0
|
|
maxbytespersecond: "0"
|
|
mins_interval: "20"
|
|
modified: "2019-05-22 11:40:02"
|
|
port1: 993
|
|
regextrans2: ""
|
|
skipcrossduplicates: 0
|
|
subfolder2: External
|
|
subscribeall: 1
|
|
timeout1: 600
|
|
timeout2: 600
|
|
user1: username
|
|
user2: mailbox@domain.tld
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Sync jobs
|
|
description: You can list all syn jobs existing in system.
|
|
operationId: Get sync jobs
|
|
summary: Get sync jobs
|
|
"/api/v1/get/tls-policy-map/{id}":
|
|
get:
|
|
parameters:
|
|
- description: id of entry you want to get
|
|
example: all
|
|
in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
enum:
|
|
- all
|
|
- "1"
|
|
- "2"
|
|
- "5"
|
|
- "10"
|
|
type: string
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- parameters: ""
|
|
active: "1"
|
|
created: "2019-10-03 08:42:12"
|
|
dest: mailcow.tld
|
|
id: 1
|
|
modified: null
|
|
policy: encrypt
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Outgoing TLS Policy Map Overrides
|
|
description: Using this endpoint you can get all TLS policy map override maps.
|
|
operationId: Get TLS Policy Map
|
|
summary: Get TLS Policy Map
|
|
"/api/v1/get/transport/{id}":
|
|
get:
|
|
parameters:
|
|
- description: id of entry you want to get
|
|
example: all
|
|
in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
enum:
|
|
- all
|
|
- "1"
|
|
- "2"
|
|
- "5"
|
|
- "10"
|
|
type: string
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- active: "1"
|
|
destination: example.org
|
|
id: 1
|
|
lookup_mx: "0"
|
|
nexthop: "host:25"
|
|
password: supersecurepw
|
|
password_short: sup...
|
|
username: testuser
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Routing
|
|
description: Using this endpoint you can get all Transport Maps.
|
|
operationId: Get Transport Maps
|
|
summary: Get Transport Maps
|
|
/api/v1/edit/spam-score/:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- type: success
|
|
log:
|
|
- mailbox
|
|
- edit
|
|
- spam_score
|
|
- username:
|
|
- info@domain.tld
|
|
spam_score: "8,15"
|
|
msg:
|
|
- mailbox_modified
|
|
- info@domain.tld
|
|
schema:
|
|
properties:
|
|
log:
|
|
description: contains request object
|
|
items: {}
|
|
type: array
|
|
msg:
|
|
items: {}
|
|
type: array
|
|
type:
|
|
enum:
|
|
- success
|
|
- danger
|
|
- error
|
|
type: string
|
|
type: object
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Mailboxes
|
|
description: >-
|
|
Using this endpoint you can edit the spam filter score for a certain mailbox.
|
|
operationId: Edit mailbox spam filter score
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
- items:
|
|
- info@domain.tld
|
|
attr:
|
|
spam_score: "8,15"
|
|
summary: Edit mailbox spam filter score
|
|
"/api/v1/get/mailbox/all/{domain}":
|
|
get:
|
|
parameters:
|
|
- description: name of domain
|
|
in: path
|
|
name: domain
|
|
required: false
|
|
schema:
|
|
type: string
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- active: "1"
|
|
attributes:
|
|
force_pw_update: "0"
|
|
mailbox_format: "maildir:"
|
|
quarantine_notification: never
|
|
sogo_access: "1"
|
|
tls_enforce_in: "0"
|
|
tls_enforce_out: "0"
|
|
custom_attributes: {}
|
|
domain: domain3.tld
|
|
is_relayed: 0
|
|
local_part: info
|
|
max_new_quota: 10737418240
|
|
messages: 0
|
|
name: Full name
|
|
percent_class: success
|
|
percent_in_use: 0
|
|
quota: 3221225472
|
|
quota_used: 0
|
|
rl: false
|
|
spam_aliases: 0
|
|
username: info@domain3.tld
|
|
tags: ["tag1", "tag2"]
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Mailboxes
|
|
description: You can list all mailboxes existing in system for a specific domain.
|
|
operationId: Get mailboxes of a domain
|
|
summary: Get mailboxes of a domain
|
|
/api/v1/edit/cors:
|
|
post:
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
- type: "success"
|
|
log: ["cors", "edit", {"allowed_origins": ["*", "mail.mailcow.tld"], "allowed_methods": ["POST", "GET", "DELETE", "PUT"]}]
|
|
msg: "cors_headers_edited"
|
|
description: OK
|
|
headers: { }
|
|
tags:
|
|
- Cross-Origin Resource Sharing (CORS)
|
|
description: >-
|
|
This endpoint allows you to manage Cross-Origin Resource Sharing (CORS) settings for the API.
|
|
CORS is a security feature implemented by web browsers to prevent unauthorized cross-origin requests.
|
|
By editing the CORS settings, you can specify which domains and which methods are permitted to access the API resources from outside the mailcow domain.
|
|
operationId: Edit Cross-Origin Resource Sharing (CORS) settings
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
example:
|
|
attr:
|
|
allowed_origins: ["*", "mail.mailcow.tld"]
|
|
allowed_methods: ["POST", "GET", "DELETE", "PUT"]
|
|
properties:
|
|
attr:
|
|
type: object
|
|
properties:
|
|
allowed_origins:
|
|
type: array
|
|
items:
|
|
type: string
|
|
allowed_methods:
|
|
type: array
|
|
items:
|
|
type: string
|
|
summary: Edit Cross-Origin Resource Sharing (CORS) settings
|
|
"/api/v1/get/spam-score/{mailbox}":
|
|
get:
|
|
parameters:
|
|
- description: name of mailbox or empty for current user - admin user will retrieve the global spam filter score
|
|
in: path
|
|
name: mailbox
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- description: e.g. api-key-string
|
|
example: api-key-string
|
|
in: header
|
|
name: X-API-Key
|
|
required: false
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"401":
|
|
$ref: "#/components/responses/Unauthorized"
|
|
"200":
|
|
content:
|
|
application/json:
|
|
examples:
|
|
response:
|
|
value:
|
|
spam_score: "8,15"
|
|
description: OK
|
|
headers: {}
|
|
tags:
|
|
- Mailboxes
|
|
description: >-
|
|
Using this endpoint you can get the global spam filter score or the spam filter score of a certain mailbox.
|
|
operationId: Get mailbox or global spam filter score
|
|
summary: Get mailbox or global spam filter score
|
|
|
|
tags:
|
|
- name: Domains
|
|
description: You can create antispam whitelist and blacklist policies
|
|
- name: Domain antispam policies
|
|
description: You can edit the Domain Antispam policies
|
|
- name: Mailboxes
|
|
description: You can manage mailboxes
|
|
- name: Aliases
|
|
description: You can manage aliases
|
|
- name: Sync jobs
|
|
description: Using Syncjobs you can sync your mails with other email servers
|
|
- name: Fordwarding Hosts
|
|
description: Forwarding Hosts enable you to send mail using a relay
|
|
- name: Logs
|
|
description: Get all mailcow system logs
|
|
- name: Queue Manager
|
|
description: Manage the postfix mail queue
|
|
- name: Quarantine
|
|
description: Check what emails went to quarantine
|
|
- name: Fail2Ban
|
|
description: Manage the Netfilter fail2ban options
|
|
- name: DKIM
|
|
description: Manage DKIM keys
|
|
- name: Domain admin
|
|
description: Create or udpdate domain admin users
|
|
- name: Single Sign-On
|
|
description: Issue tokens for users
|
|
- name: Address Rewriting
|
|
description: Create BCC maps or recipient maps
|
|
- name: Outgoing TLS Policy Map Overrides
|
|
description: Force global TLS policys
|
|
- name: oAuth Clients
|
|
description: Use mailcow as a oAuth server
|
|
- name: Routing
|
|
description: Define your own email routes
|
|
- name: Resources
|
|
description: Manage ressources
|
|
- name: App Passwords
|
|
description: Create mailbox app passwords
|
|
- name: Status
|
|
description: Get the status of your cow
|
|
- name: Ratelimits
|
|
description: Edit domain ratelimits
|
|
- name: Cross-Origin Resource Sharing (CORS)
|
|
description: Manage Cross-Origin Resource Sharing (CORS) settings
|