Mailcow
Your new Mailcow integration lets Paymenter automatically create a domain inside Mailcow, hand over a dedicated domain-admin account to the customer, and keep t
Mailcow Domain Admin Extension
Your new Mailcow integration lets Paymenter automatically create a domain inside Mailcow, hand over a dedicated domain-admin account to the customer, and keep the service lifecycle (create, suspend, terminate, upgrade) in sync. This guide walks both administrators and end users through the essentials—no code knowledge needed.
1. What the extension does
When a product using this server extension is provisioned, Paymenter will:
- Create the customer’s domain in Mailcow with the limits you define.
- Generate a domain-admin user and secure password for that domain.
- Save the login details so the user can view them inside the client portal.
- Send a polished welcome email (if email delivery is configured) with the control-panel link.
Later on, Paymenter can suspend/unsuspend the domain, adjust limits, or fully remove it—all through the Mailcow API.
2. Administrator setup
Prerequisites
- A working Mailcow (dockerized) installation accessible over HTTPS.
- A Mailcow read-write API key created under
Configuration → Access → API. - Optional: Mail routing configured so Paymenter can send emails (SMTP settings under
Admin → Settings → Mail).
Step-by-step
- Install the extension
Upload the “Mailcow Domain Admin” server extension to your Paymenter instance if it is not already present (the repository layout expects it underextensions/Servers/Mailcow). - Create a server in Paymenter
- Navigate to
Admin → Products → Servers → New. - Choose the “Mailcow Domain Admin” extension.
- Fill in:
- Mailcow Base URL – e.g.
https://mail.example.com - API Key – your Mailcow read-write key
- License Key – paste the license key you received with your purchase (
%%__Mailcow_paymenter_License__%%is the placeholder). The extension validates this key online, so make sure outbound HTTPS is allowed. - Verify TLS certificates – keep this enabled unless you must use a self-signed certificate.
- Mailcow Base URL – e.g.
- Navigate to
- Wire the server to products
- Create (or edit) a product in Paymenter and assign the Mailcow server to it.
- Configure product-level limits:
- Mailbox cap
- Default / maximum per-mailbox quota (in MiB)
- Total domain quota
- Optional alias limit
- Optional outbound rate limit (messages per second/minute/hour/day)
- Test the connection
Use the “Test Connection” button on the server configuration page—Paymenter will confirm the API credentials by calling Mailcow. - Enable email notifications (optional but recommended)
If Paymenter can send mail, the extension will automatically email the customer their domain-admin credentials using the default header/footer you’ve configured.
3. Service lifecycle in plain terms
| Action in Paymenter | What happens in Mailcow |
|---|---|
| Create | Creates the domain, applies limits, creates a domain-admin user, stores username and password. |
| Suspend | Sets the domain to inactive (logins fail, mailboxes are disabled). |
| Unsuspend | Reactivates the domain instantly. |
| Upgrade/Downgrade | Adjusts mailbox, quota, alias, and rate-limit settings to match the product. |
| Terminate | Deletes the domain-admin, every mailbox and alias in that domain, its DKIM key, and finally removes the Mailcow domain itself. |
4. Admin checklist when something looks off
- Domain not created?
Double-check the Mailcow API key permissions, confirm the license key is valid, and ensure the product collected a domain name at checkout. - Emails not arriving?
Verify Paymenter’s SMTP configuration and checkstorage/logs/laravel-*.logfor mail delivery errors. - License errors in the log?
The extension refuses to provision if the License check fails. Confirm that the key hasn’t exceeded its activation limits. - Token or login issues?
The client area shows the stored username/password. Ask the customer to reset the password inside Mailcow if they lose it. - Service termination fails?
Look for error details in the Laravel log—the order of deletion is already handled automatically (mailboxes → aliases → domain).
5. Customer experience (share this with end users)
- Provisioning confirmation
Shortly after purchase your service appears underMy Servicesin the Paymenter client area. An email (if enabled) also shares the Mailcow login details. - Viewing credentials manually
- Log in to Paymenter.
- Open
Services → (Your Mailcow service). - The page lists:
- Domain Admin Username
- Domain Admin Password
- A button labelled “Open Mailcow Control Panel” linking to
https://mail.example.com/domainadmin.
- First login tips
- Use the credentials exactly as shown (they are case-sensitive).
- After logging in, change the password to something memorable.
- Navigate to “Mailboxes” in Mailcow to create, edit, or delete mailboxes and aliases within your domain.
- When to contact support
- You can’t log in even with the provided credentials.
- You need higher limits than your plan allows.
- You suspect suspicious activity on your domain.
Use your provider’s ticket system (Support → Open Ticket) and mention your domain name for faster help.
6. FAQ
Do customers get full Mailcow admin access?
No. They receive a domain-admin login scoped strictly to their domain. They cannot see other domains or server-wide settings.
Can customers reset their password themselves?
Yes. Inside Mailcow, domain admins can change their own password. If they lose access entirely, the Paymenter administrator can regenerate a password by updating the service properties or re-provisioning.
Is single sign-on available?
Not in this minimal release. Customers log in with the stored username and password. (You can add SSO later if needed.)
How are rate limits enforced?
If enabled on the product, outgoing messages are capped per selected time window (second/minute/hour/day) using Mailcow’s built-in throttling.
7. Updating or removing the extension
- Back up your Paymenter instance (files + database).
- Replace the extension files under
extensions/Servers/Mailcowas needed. - Clear application cache if you deploy code changes (
php artisan cache:clear). - Removing the extension will stop new provisioning, but existing services remain until you terminate them manually.
With this guide, both administrators and customers can work confidently with the Mailcow Domain Admin extension—no developer jargon required. Happy hosting!