3 `olden-mail` is an IMAP & SMTP proxy that allows you to connect to SSL
4 enabled mail servers using insecure plaintext connections.
6 This is of course very insecure, but it's intended to allow vintage
7 computers that don't have SSL capability or ther right ciphers to still
12 ### Pre-built binaries and packages
14 Binaries are available for macos and linux, for both aarch64 and x86_64
15 from https://build.r.bdr.sh/olden-mail, including `.deb` and `.rpm`
20 You can also install this on macos via homebrew.
23 % brew tap rbdr/apps git@git.sr.ht:~rbdr/homebrew-apps
24 % brew install rbdr/apps/olden-mail
29 You can run `make` for a debug build, or `make -e profile=release` for a
34 The proxy requires you to set environment variables, but otherwise takes
37 * `LOCAL_IMAP_PORT` u16, the port in which the server will listen for
38 IMAP clients. Defaults to 143.
39 * `LOCAL_IMAP_BIND_ADDRESS` String, the address on which to listen for
40 IMAP clients. Defaults to 0.0.0.0.
41 * `REMOTE_IMAP_PORT` u16, the port to which the server will forward the
42 IMAP messages. Defaults to 993.
43 * `REMOTE_IMAP_HOST` String, the host to which the server will forward the
44 IMAP messages. Required.
46 * `LOCAL_SMTP_PORT` u16, the port in which the server will listen for
47 SMTP clients. Defaults to 25.
48 * `LOCAL_SMTP_BIND_ADDRESS` String, the address on which to listen for
49 SMTP clients. Defaults to 0.0.0.0.
50 * `REMOTE_SMTP_PORT` u16, the port to which the server will forward the
51 SMTP messages. Defaults to 465.
52 * `REMOTE_SMTP_HOST` String, the host to which the server will forward the
53 SMTP messages. Required.
55 This means the minimum invocation is this (Shown here with inline
56 environment variables)
59 % REMOTE_IMAP_HOST=imap.coolmailsite.example REMOTE_SMTP_HOST=smtp.coolmailsite.example olden-mail
64 In order to work with some older clients, middleware allow transformation of
65 messages. The current middleware are:
67 - `FindMailboxesCompatibility` - Transforms IMAPv3 FIND MAILBOX commands to
72 You can control how much it prints by setting `RUST_LOG`. Setting it to
73 `debug` will output the whole protocol stream. The default level is
76 Messages coming from the client are prefixed with `>>>`, and messages coming
77 from the server with `<<<`. If a middleware modified a command, you'll see
78 the message that was actually sent prefixed with `###`.