Overview
| Comment: | expand README |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
880ce86a7f68d7958d1a727a80aa67a2 |
| User & Date: | arcade on 2026-08-01 10:46:58.589 |
| Other Links: | manifest | tags |
Context
|
2026-08-01
| ||
| 11:20 | bump, add some docstrings, switch from just-getopt to clap check-in: 512369f93e user: arcade tags: trunk | |
| 10:46 | expand README check-in: 880ce86a7f user: arcade tags: trunk | |
| 10:24 | regex in get_id was defunct, fix regex, fix logic to filter unknown domains check-in: f748e99b70 user: arcade tags: trunk | |
Changes
Renamed and modified
README
[e538a2e7fd]
to README.md
[438799e731].
|
| > | > | > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | # smtp2tg SMTP-to-Telegram gateway. Receives emails via SMTP and forwards them to Telegram chats. --- ## Installation ### From source ```bash git clone https://github.com/kworr/smtp2tg cd smtp2tg cargo build --release ``` ## Configuration 1. Create `smtp2tg.toml` (see `smtp2tg.toml.example` for reference). 2. Get a Telegram Bot Token from [@BotFather](https://t.me/BotFather). 3. Get your chat ID (use [@getidsbot](https://t.me/getidsbot) or debug mode in Telegram client). ### Example configuration ```toml api_key = "123456789ABCdefGHIjklMNOpq" api_gateway = "https://api.telegram.org" listen_on = "127.0.0.1:1025" unknown = "relay" fields = ["date", "from", "subject"] domains = ["example.com", "localhost"] default = 0 [recipients] "admin@example.com" = 12345678 "alerts@example.com" = -10012345678 ``` To catch bounces (so they wouldn't stuck in upper mail server) make sure sender envelope address is real as required by mail library (actually not sure whether this applies to mailin). For example Postfix has to be tweaked like this: $config_directory/main.cf: smtp_generic_maps = hash:$config_directory/generic $config_directory/generic: "" postmaster@example.com <> postmaster@example.com Actually not sure which one works... --- ## Usage ### Run ```bash ./smtp2tg -c /path/to/smtp2tg.toml ``` ### CLI arguments | Argument | Description | Example | |---------------|---------------------------|-----------------------| | `-h`, `--help` | Show help | `smtp2tg --help` | | `-c`, `--config` | Path to config file | `smtp2tg -c config.toml` | --- ## Security ### Important - **Recommended usage**: Run on `127.0.0.1` (localhost) only. - If exposing to a network: - **Restrict port access** via firewall. - **Use TLS** (e.g., via `stunnel` or `nginx`). - **Implement authentication** (this software does not provide it). ### Config file permissions Set file permissions to `0600` (owner read/write only): ```bash chmod 600 smtp2tg.toml ``` --- ## How it works 1. A client (e.g., Postfix) sends an email to `listen_on` (e.g., `127.0.0.1:1025`). 2. smtp2tg parses the email and converts it to a Telegram message. 3. The message is sent to the specified chat (or `default` if address is unknown). ### Example: Email → Telegram **Incoming email:** ``` From: user@example.com To: admin@example.com Subject: Test Hello, world! ``` **Telegram message:** ``` <blockquote expandable> <u><i>Subject:</i></u> <code>Test</code> <u><i>From:</i></u> <code>user@example.com</code> <u><i>Date:</i></u> <code>Mon, 01 Jan 2024 12:00:00 +0000</code> </blockquote> <pre>Hello, world!</pre> ``` --- ## Links - **Original repository**: [http://fs.b1t.name/smtp2tg](http://fs.b1t.name/smtp2tg) - **GitHub Mirror**: [https://github.com/kworr/smtp2tg](https://github.com/kworr/smtp2tg) |