]>
Commit | Line | Data |
---|---|---|
1 | --- title: /olden-mail.html | |
2 | --- description: IMAP & SMTP proxy to connect vintage clients to modern e-mail. | |
3 | ## Olden Mail | |
4 | ||
5 | olden-mail is an IMAP & SMTP proxy that allows you to connect to SSL enabled mail servers using insecure plaintext connections. | |
6 | ||
7 | This is of course very insecure, but it's intended to allow vintage computers that don't have SSL capability or ther right ciphers to still be used for e-mail. | |
8 | ||
9 | => https://git.r.bdr.sh/rbdr/olden-mail ⧇ source | |
10 | => https://git.sr.ht/~rbdr/olden-mail ⧉ mirror | |
11 | ||
12 | ## Install | |
13 | ||
14 | ### Homebrew | |
15 | You can install using homebrew. | |
16 | ||
17 | ``` | |
18 | % brew tap rbdr/apps git@git.sr.ht:~rbdr/homebrew-apps | |
19 | % brew install rbdr/apps/olden-mail | |
20 | ``` | |
21 | ||
22 | ### Prebuilt Packages | |
23 | You can find pre-built packages for linux @ build.r.bdr.sh. There you can find a `.tar.gz` that includes only the binary, or `.rpm` and `.deb` distributions for fedora and debian that include a manpage. | |
24 | ||
25 | Binaries are provided for x86_64 and aarch64. | |
26 | ||
27 | Unstable releases are built directly from the main branch, while tagged versions have their own release and can be considered more stable. | |
28 | ||
29 | => gemini://build.r.bdr.sh/olden-mail olden-mail pre-built releases @ gemini | |
30 | => https://build.r.bdr.sh/olden-mail olden-mail pre-built releases @ https | |
31 | ||
32 | ### From Source | |
33 | Make sure you have rust and Make installed. Clone the repository, and run: | |
34 | ||
35 | ``` | |
36 | % make -e profile=release | |
37 | ``` | |
38 | ||
39 | Then copy the file somewhere in your PATH | |
40 | ||
41 | ``` | |
42 | % cp ./target/release/olden-mail /usr/local/bin | |
43 | ``` | |
44 | ||
45 | ## Usage | |
46 | ||
47 | The proxy requires you to set environment variables, but otherwise takes | |
48 | no options. | |
49 | ||
50 | * `LOCAL_IMAP_PORT` u16, the port in which the server will listen for IMAP clients. Defaults to 143. | |
51 | * `LOCAL_IMAP_BIND_ADDRESS` String, the address on which to listen for IMAP clients. Defaults to 0.0.0.0. | |
52 | * `REMOTE_IMAP_PORT` u16, the port to which the server will forward the IMAP messages. Defaults to 993. | |
53 | * `REMOTE_IMAP_HOST` String, the host to which the server will forward the IMAP messages. Required. | |
54 | ||
55 | * `LOCAL_SMTP_PORT` u16, the port in which the server will listen for SMTP clients. Defaults to 25. | |
56 | * `LOCAL_SMTP_BIND_ADDRESS` String, the address on which to listen for SMTP clients. Defaults to 0.0.0.0. | |
57 | * `REMOTE_SMTP_PORT` u16, the port to which the server will forward the SMTP messages. Defaults to 465. | |
58 | * `REMOTE_SMTP_HOST` String, the host to which the server will for SMTP messages. Required. | |
59 | ||
60 | ## Middleware | |
61 | ||
62 | Olden mail comes with middleware that transforms messages before they're sent to the client or server: | |
63 | ||
64 | - Converts IMAPv3 FIND MAILBOX commands to IMAPv4 LIST commands. | |
65 | ||
66 | Whenever a command is modified you can see the actual sent text prefixed with `###` in the debug logs. | |
67 | ||
68 | ## Changelog | |
69 | ||
70 | * 1.1.0 Adds middleware to support IMAPv3 FIND MAILBOX | |
71 | * 1.0.1 Removes noisy debug statements | |
72 | * 1.0.0 Initial Release |