Professional
Mail Server
Management

Domains, mailboxes, aliases and DNS — all in one elegant control panel.

Multi-domain management
DKIM, SPF & DMARC ready
Docker-powered infrastructure

Welcome back

Sign in to your admin panel

MailApp
Navigation
checking...
Home
System overview and service status
—
MailApp
Hostname—
Architecture—
IPs
Version —
System Time—
Timezone—
Uptime—
Disk usage
—
CPU
—
CPU %
MEMORY
—
MEM %

Container Information

Loading containers…

Container logs

Select a container to view logs.
—
Domains
—
Mailboxes
—
Aliases

All domains

DomainStatusMailboxesAliasesStatisticsQuotaActions

Mailboxes

Manage email accounts and access settings

Enforce TLS incoming
Enforce TLS outgoing
IMAP
POP3
SMTP
Sieve
ActiveSync
CalDAV/CardDAV
Frequency
Category
UsernameLast mail loginMessage #ActiveAction

Aliases

Forward mail to one or more destinations

Aliases are not automatically applied to domain aliases. For example, my-alias@domain does not cover my-alias@alias-domain. Use sieve filters or SOGo forwarders for external mailboxes. Tip: use Expand alias over alias domains to replicate selected aliases.
IDAliasGoto addressDomain SOGoPublic commentPrivate comment InternalActiveAction
Showing 0 to 0 of 0 entries

Domain aliases

Map alias domains to a target domain

AliasTarget domainActiveAction
Showing 0 to 0 of 0 entries

Resources

Bookable rooms, equipment and shared assets

Always free — always show as free Soft limit — unlimited, show as busy when booked Hard limit — limit to custom booking count
DescriptionAliasKindDomainMultiple bookingsActiveAction
Showing 0 to 0 of 0 entries

Sync jobs

IMAP mailbox synchronization via imapsync

IDOwnerServerLast runLast run result LogActiveStatusAction
Showing 0 to 0 of 0 entries

Filters

Sieve mail filtering rules

You can store multiple filters per user, but only one prefilter and one postfilter can be active at the same time. Each filter will be processed in the described order. Neither a failed script nor an issued keep; will stop processing of further scripts. Changes to global sieve scripts will trigger a restart of Dovecot.
All filters • Global sieve prefilter • Prefilter • User scripts • Postfilter • Global sieve postfilter
IDActiveTypeOwnerDescriptionAction
Showing 0 to 0 of 0 entries
Global Prefilter
Global Postfilter

BCC maps

Silently forward copies of messages to another address

BCC maps are used to silently forward copies of all messages to another address. A recipient map type entry is used, when the local destination acts as recipient of a mail. Sender maps conform to the same principle. The local destination will not be informed about a failed delivery.
IDBCC typeLocal destinationBCC destinationDomainActiveAction
Showing 0 to 0 of 0 entries

Recipient maps

Replace destination addresses before delivery

Recipient maps are used to replace the destination address on a message before it is delivered.
IDOriginal recipientNew recipientActiveAction
Showing 0 to 0 of 0 entries

Outgoing TLS policy map overrides

Override outgoing TLS transport rules per destination

This policy map overrides outgoing TLS transport rules independently of a user's TLS policy settings. Please check the smtp_tls_policy_maps docs for further information.
IDDestinationPolicyParametersActiveAction
Showing 0 to 0 of 0 entries

Administrators

Manage global administrator accounts

External API
UsernameTFAActiveAction
Showing 0 to 0 of 0 entries

Edit administrator details

Scan QR or use secret:

TOTP QR
Login with FIDO2

Known IDs:

Registration status: —

Interactive docs: /api/swagger — authenticate with header X-API-Key (keys below).

Read-Only Access

API key:

—
Read-Write Access

API key:

—

Domain administrators

UsernameDomain assignmentsTFAActiveAction
Showing 0 to 0 of 0 entries

Configure an external Provider for Authentication. User's mailboxes will be automatically created upon their first login, provided that an attribute mapping has been set.

Identity Provider

Attribute Mapping

Attribute Template
Default Template

Advanced settings

For the following settings to work, the mail client in Keycloak needs a Service account and the permission to view-users.

Mailpassword Flow

In addition to the Authorization Code Flow (Standard Flow in Keycloak), which is used for Single-Sign On login, mailcow also supports Authentication Flow with direct Credentials. The Mailpassword Flow attempts to validate the user's credentials by using the Keycloak Admin REST API. mailcow retrieves the hashed password from the mailcow_password attribute, which is mapped in Keycloak.

Ignore SSL Errors
Auto-create users on login
Periodic Full Sync
Import Users
Sync / Import interval (min)

OAuth2 Apps

This implementation supports the Authorization Code grant type and the issuance of refresh tokens. Refresh tokens are automatically re-issued after use.

  • Default scope is profile. Only mailbox users can authenticate.
  • The state parameter is required for authorize requests.

Authorization endpoint: /oauth/authorize
Token endpoint: /oauth/token
Resource page: /oauth/profile

Regenerating a client secret does not expire existing authorization codes, but prevents renewal of access tokens. Revoking tokens terminates all active sessions and requires re-authentication.

Registered clients

Manage OAuth2 client applications

IDClient IDClient secretRedirect URIAction
Showing 0 to 0 of 0 entries

Quarantine

The quarantine module saves rejected mail to the database without giving the sender the impression of a delivered message. Messages can be released to the recipient inbox or learned as spam.

Learn as spam and delete uses Bayesian learning and fuzzy hashes. Learning multiple messages can be time-consuming. Denylisted elements are excluded from learning.

The current system configuration disables the quarantine functionality. Configure retentions per mailbox and maximum size under System → Options → Quarantine.

Quarantined messages

Rspamd rejected and held messages

IDRspamd QIDSender (SMTP)Subject Rspamd resultRecipientDangerScore NotifiedReceivedAction
Showing 0 to 0 of 0 entries

Queue Manager

The mail queue contains all e-mails that are waiting for delivery. If an email is stuck in the mail queue for a long time, it is automatically deleted by the system. The error message of the respective mail gives information about why the mail could not be delivered.

  • Deliver: Attempts to redeliver selected mails.
  • Unhold: Releases selected mails for delivery (Requires prior hold).
  • Hold: Holds the selected mails (Prevents further delivery attempts).
Postfix queue is unavailable. Ensure the Postfix container is running and Docker socket access is configured for the API service.

Mail queue

Live Postfix queue entries

QIDQueueArrival time (server time)Message size SenderRecipientsAction
Showing 0 to 0 of 0 entries

ARC/DKIM keys

Add ARC/DKIM key

Forwarding Hosts

Incoming messages are unconditionally accepted from any hosts listed here. These hosts are then not checked against DNSBLs or subjected to greylisting. Spam received from them is never rejected, but optionally it can be filed into the Junk folder. The most common use for this is to specify mail servers on which you have set up a rule that forwards incoming emails to your mail server.

Forwarding hosts

Trusted sources bypassing DNSBL and greylisting

HostSourceSpam filterAction
Showing 0 to 0 of 0 entries

Add Forwarding Host

You can either enter IP addresses, networks in CIDR notation, host names (which will be resolved to IP addresses), or domain names (which will be resolved to IP addresses using SPF records or, in their absence, MX records).

Fail2ban parameters

Fail2ban will still maintain the banlist, but it will not actively set rules to block traffic. Use the generated banlist below to externally block the traffic.

A denylisted host or network will always outweigh an allowlist entity. List updates will take a few seconds to be applied.

Logs taken into consideration: Postfix, Dovecot, MailApp API.

IDRegExpAction

See a list of banned IPs below: network (remaining ban time) — [actions]. IPs queued to be unbanned will be removed from the active ban list within a few seconds. Red labels indicate active permanent bans by denylisting.

Quarantine

The current system configuration disables the quarantine functionality. Please set retentions per mailbox and a maximum size for quarantine elements.

Leave empty to restore default template.

Password Settings

Password policy

Password Recovery Settings

{{link}} — The generated password reset link.
{{username}} — The mailbox name of the user who requested the reset.
{{username2}} — The recovery mailbox name.
{{date}} — The date the request was made.
{{token_lifetime}} — The token lifetime in minutes.
{{hostname}} — The mail server hostname.

Leave empty to restore default template.

Leave empty to restore default template.

Routing

Sender-dependent transports

Define sender-dependent transports to be able to select them in a domains configuration dialog. The transport service is always smtp: and will therefore try TLS when offered. Wrapped TLS (SMTPS) is not supported. A users individual outbound TLS policy setting is taken into account. Affects selected domains including alias domains.

Sender-dependent transports

IDHostUsernameIn use byActiveAction
Showing 0 to 0 of 0 entries
Add sender-dependent transport

Please be aware that authentication data, if any, will be stored as plain text.

Transport Maps

  • A transport map entry overrules a sender-dependent transport map.
  • MX-based transports are preferably used.
  • Outbound TLS policy settings per-user are ignored and can only be enforced by TLS policy map entries.
  • The transport service for defined transports is always smtp: and will therefore try TLS when offered. Wrapped TLS (SMTPS) is not supported.
  • Addresses matching /localhost$/ will always be transported via local:, therefore a * destination will not apply to those addresses.
  • To determine credentials for an exemplary next hop [host]:25, Postfix always queries for host before searching for [host]:25. This behavior makes it impossible to use host and [host]:25 at the same time.

Transport Maps

IDDestinationNext hopUsernameActiveAction
Showing 0 to 0 of 0 entries
Add transport

Please be aware that authentication data, if any, will be stored as plain text.

Warning: Adding a new transport map entry will update the credentials for all entries with a matching next hop column.

System mails

By default — with no selection — all mailboxes are addressed.

Loading recipients…

Private key

Domain

OAuth2

Register a new OAuth2 client

Only mailbox users can authenticate against OAuth2. If the scope parameter is omitted, it falls back to profile. The state parameter is required as part of the authorize request.

Client secret

Copy now — it will not be shown again

Store this secret securely. It is only displayed once after creation or regeneration.

—

Add mailbox

Email account settings

@
Password
Tagged mail handling
Quarantine

Quarantine notifications

Quarantine notification category

Encryption policy
Allowed protocols
ACL
Rate limit
Status & options

Add domain

Configure domain settings

Limits
Options
Rate limit
DKIM
Relay

Add alias

Forward mail to destinations

Add domain alias

Map alias domain to target domain

Rate limit
DKIM

Add resource

Shared calendar resource settings

TLS policy maps

Outgoing TLS transport override

BCC maps

Silent copy forwarding

Recipient maps

Rewrite destination addresses

Filter

Sieve script for mailbox delivery

Please see the example presets below. For more details see Wikipedia.

    Add sync job

    Remote IMAP → local mailbox synchronization

    Be aware that passwords need to be saved plain-text!

    Sync job log

    Last run output

    
          

    DNS diaqnostikası

    ProMail poçt serverindən DNS qeydləri — provayderinizə əlavə edin

    Poçt serveri:

    0
    Düzgün
    0
    Yoxdur
    0
    Uyğun deyil
    0
    Opsional
    StatusAdNövGözlənilən dəyərCari dəyər

    Add administrator

    Global admin account

    Add domain administrator