]> git.r.bdr.sh - rbdr/olden-mail/blob - README.md
Actually terminate with a newline
[rbdr/olden-mail] / README.md
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 `###`.