]>
Commit | Line | Data |
---|---|---|
1 | # olden-mail | |
2 | ||
3 | `olden-mail` is an IMAP & SMTP proxy that allows you to connect to SSL | |
4 | enabled mail servers using insecure plaintext connections. | |
5 | ||
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 | |
8 | be used for e-mail. | |
9 | ||
10 | ## Installation | |
11 | ||
12 | ### Pre-built binaries and packages | |
13 | ||
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` | |
16 | packages. | |
17 | ||
18 | ### Homebrew | |
19 | ||
20 | You can also install this on macos via homebrew. | |
21 | ||
22 | ``` | |
23 | % brew tap rbdr/apps git@git.sr.ht:~rbdr/homebrew-apps | |
24 | % brew install rbdr/apps/olden-mail | |
25 | ``` | |
26 | ||
27 | ### From source | |
28 | ||
29 | You can run `make` for a debug build, or `make -e profile=release` for a | |
30 | release build. | |
31 | ||
32 | ## Usage | |
33 | ||
34 | The proxy requires you to set environment variables, but otherwise takes | |
35 | no options. | |
36 | ||
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. | |
45 | ||
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. | |
54 | ||
55 | This means the minimum invocation is this (Shown here with inline | |
56 | environment variables) | |
57 | ||
58 | ``` | |
59 | % REMOTE_IMAP_HOST=imap.coolmailsite.example REMOTE_SMTP_HOST=smtp.coolmailsite.example olden-mail | |
60 | ``` | |
61 | ||
62 | ## Middleware | |
63 | ||
64 | In order to work with some older clients, middleware allow transformation of | |
65 | messages. The current middleware are: | |
66 | ||
67 | - `FindMailboxesCompatibility` - Transforms IMAPv3 FIND MAILBOX commands to | |
68 | IMAPv4 LIST commands. | |
69 | ||
70 | ## Debugging | |
71 | ||
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 | |
74 | `info`. | |
75 | ||
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 `###`. |