| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
A simple LMTP delivery proxy that is able to deliver to different backends depending on the rcpt to user
LMTP is often used for for communication between message transfer agent and message delivery agent/local delivery agent. https://en.wikipedia.org/wiki/Local_Mail_Transfer_Protoc$
When doing maintenance or upgrades on an SMTP system it might be useful to be able to redirect delivery temporarily to a different storage backend.
This LMTP proxy was written to do a no-downtime migration of users from a cyrus based IMAP server to a newer version of the IMAP server. Perdition is used to redirect the end users from the old to the new imap service while this lmtp proxy is used to redirect the incoming mail from postfix to the right backend store.
usage: lmtp-proxy [-h] [-c [CONFIG]] [-D]
An LMTP Proxy server. Accepts mail via LMTP on an incoming socket and can
forward to different lmtp sockets depending on the destination address.
optional arguments:
-h, --help show this help message and exit
-c [CONFIG], --config [CONFIG]
Configuration file location
-D, --daemonize Deamonize program. If unspecified, run in foreground
A configuration file is necessary to run the proxy. As a format for the config yaml was chosen as it can be easily updated via scripts.
- imap -> cyrus-old <- lmtp -
/ \
enduser - imap -> perdition - - lmtp-proxy <- mta/postfix
\ /
- imap -> cyrus-new <- lmtp -
If done scripted, downtime for the user itself is only the final imapsync which usually is less than 10 seconds. The full system does not experience any downtime at all.
| Back | FazBrowse Home | New Git URL |