npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

n8n-nodes-mailcow

v0.1.0

Published

n8n community nodes for mailcow: manage domains, mailboxes, aliases, app passwords, quarantine, mail queue, DKIM and logs, with a polling trigger.

Readme

n8n-nodes-mailcow

n8n-nodes-mailcow

n8n community nodes for mailcow, the dockerized mail server suite. Manage domains, mailboxes, aliases, app passwords, DKIM keys, the quarantine and the Postfix queue from your workflows, and start workflows when something new shows up.

The UI is in English with a Spanish translation (set N8N_DEFAULT_LOCALE=es).

This is an independent community project. It is not affiliated with or endorsed by mailcow or The Infrastructure Company GmbH.

Nodes

Mailcow (action node)

| Resource | Operations | |---|---| | Alias | create, delete, get, get many, update | | App Password | create, delete, get many | | DKIM Key | create, delete, get | | Domain | create, delete, get, get many, update | | Log | get (postfix, dovecot, rspamd history, netfilter, API, ACME, SOGo, watchdog, ...) | | Mail Queue | get many, flush, delete all | | Mailbox | create, delete, get, get many, update | | Quarantine | get many, release, learn as ham and release, delete | | Status | version, containers, vmail disk usage |

Mailcow Trigger (polling): new mailbox, new alias, new domain, new quarantined message. mailcow has no webhooks, so the trigger compares the lists between polls. The first poll after activation only records what already exists, it does not replay it.

Credentials

  1. In the mailcow admin UI open System > Configuration > Access > API.
  2. Use the Read-only key if the workflows only read (the trigger needs nothing more), or the Read/Write key to make changes.
  3. Add the public IP n8n connects from to Allow API access from.
  4. In n8n create a Mailcow API credential with the web UI URL (https://mail.example.com) and the key.

Things the node takes care of

mailcow's API has a few behaviours that are easy to trip over. The node handles them so the workflow does not have to:

  • Errors with HTTP 200. Write calls answer 200 even when mailcow refuses the change and put type: "danger" in the body. The node turns that into a node error with mailcow's message.
  • HTTPS only. Over plain HTTP the API returns an HTML redirect instead of JSON. The node reports that explicitly instead of failing on a parse error.
  • Mailbox rate limit on create. add/mailbox ignores the rate limit, so the node sets it with a second call when you give one.
  • App password field names. The API expects app_passwd/app_passwd2; any other name gets a misleading password_complexity error.
  • Generated passwords. Leave the password empty on Mailbox > Create or App Password > Create and the node generates one and returns it once as generated_password.

Two behaviours of mailcow itself are shown as warnings in the node:

  • Mailbox > Update > Send As Addresses replaces the whole list.
  • Alias > Update > Destinations makes mailcow rebuild who can send as that alias, and the mailboxes that could do it lose the permission.

Reading and sending mail

This node uses the admin API, which does not touch message contents. To read or send mail from a mailcow mailbox use the built-in Email Trigger (IMAP) and Send Email (SMTP) nodes, or the community n8n-nodes-imap node. An app password with only the protocols the workflow needs is a good fit for those credentials (App Password > Create).

Development

npm install --ignore-scripts
npm run lint
npm test
npm run build

Tested against mailcow 2026-09.

License

MIT


En español

Nodos community de n8n para administrar un servidor mailcow: dominios, buzones, alias, contraseñas de aplicación, claves DKIM, cuarentena, cola de Postfix y logs, más un trigger por polling (buzón, alias o dominio nuevo, y mensaje nuevo en cuarentena). La interfaz se traduce al español con N8N_DEFAULT_LOCALE=es.

Para la credencial, creá una API key en Sistema > Configuración > Acceso > API (solo lectura alcanza para leer y para el trigger) y agregá la IP pública de tu n8n en "Permitir API desde". La URL base tiene que ser https://.

Para leer o enviar correo usá los nodos IMAP/SMTP de n8n con una contraseña de aplicación: la API de administración no accede al contenido de los mensajes.

Proyecto independiente de la comunidad, sin relación oficial con mailcow.