Mail Redirect to remote server

Your question

I’m switching from Postfix to stalwart. In postfix virtual, it was easy to set up users, “mailing lists” and redirects. I like the sub-address feature. What I did not manage yet is redirect, which I need for a domain that is “parked”, it redirects both web (to social network page) as well as mail (here to gmail).
Online I find I need to write sieve scripts, but don’t find examples I’d understand how to implement. My thought was, if “mailing list” can be used for such a redirect to a single user not on the server? If so, the documentation should address this please.
Else I appreciate if there could be a manual entry for how to set up a redirect (for dummies like me that don’t know sieve).

Here are the two cleanest ways to redirect all mail for a parked domain to an external address like Gmail, from simplest to most flexible:


Option 1 (Simplest): Use a Mailing List with an External Recipient

This requires no Sieve knowledge at all. Stalwart’s mailing lists fully support external (off-server) recipients.

  1. In the WebUI, go to Management › Directory › Mailing Lists and create a new list.
  2. Set the name (local part) and pick your parked domain.
  3. Under Recipients, add the Gmail address (e.g. [email protected]).
  4. If you want to catch all addresses at that domain (e.g. [email protected]), add the catch-all addresses as aliases on the list.

Any mail delivered to that list address will be forwarded on to the Gmail address. No Sieve needed.


Option 2: A Simple Sieve Script (for per-account or server-wide rules)

If you’d prefer a Sieve script (for example, as a server-level script applied at delivery), the redirect action is exactly what you need. It’s part of standard Sieve (RFC 5228) and Stalwart supports it fully. The script is as short as it gets:

redirect "[email protected]";

That single line forwards every message to the specified address. You can add conditions to be more selective:

require ["copy"];

# Redirect and also keep a local copy
redirect :copy "[email protected]";

System-level Sieve scripts are managed in the WebUI under Settings › Sieve Scripts (as a SieveSystemScript). User-level scripts can be uploaded via any ManageSieve-capable client.


The mailing list approach is the most “Postfix virtual table”-like experience - no scripting, just add the external address as a recipient and you’re done. It’s documented here: Mailing Lists and Sieve Overview.

This is an automated reply from the Stalwart Help Bot. Other community members may follow up if this answer is incomplete or wrong. If you found it useful, mention @helpbot in any reply to ask follow-up questions and the bot will respond again.

The simplest setup for a parked-domain catch-all that forwards to an external address, this can be done from the Domain configuration.

Thanks. As we don’t want a “catchall” except for a honeypot, the information to use mailinglist with just one recipient and the aliases for it was sufficient. I hope this works. :face_with_peeking_eye: