Annotation For README.md
Logged in as anonymous

Origin for each line in README.md from check-in 880ce86a7f:

880ce86a7f 2026-08-01        arcade: # smtp2tg
880ce86a7f 2026-08-01        arcade: 
880ce86a7f 2026-08-01        arcade: SMTP-to-Telegram gateway. Receives emails via SMTP and forwards them to Telegram chats.
880ce86a7f 2026-08-01        arcade: 
880ce86a7f 2026-08-01        arcade: ---
880ce86a7f 2026-08-01        arcade: 
880ce86a7f 2026-08-01        arcade: ## Installation
880ce86a7f 2026-08-01        arcade: 
880ce86a7f 2026-08-01        arcade: ### From source
880ce86a7f 2026-08-01        arcade: ```bash
880ce86a7f 2026-08-01        arcade: git clone https://github.com/kworr/smtp2tg
880ce86a7f 2026-08-01        arcade: cd smtp2tg
880ce86a7f 2026-08-01        arcade: cargo build --release
880ce86a7f 2026-08-01        arcade: ```
880ce86a7f 2026-08-01        arcade: 
880ce86a7f 2026-08-01        arcade: ## Configuration
880ce86a7f 2026-08-01        arcade: 
880ce86a7f 2026-08-01        arcade: 1. Create `smtp2tg.toml` (see `smtp2tg.toml.example` for reference).
880ce86a7f 2026-08-01        arcade: 2. Get a Telegram Bot Token from [@BotFather](https://t.me/BotFather).
880ce86a7f 2026-08-01        arcade: 3. Get your chat ID (use [@getidsbot](https://t.me/getidsbot) or debug mode in Telegram client).
880ce86a7f 2026-08-01        arcade: 
880ce86a7f 2026-08-01        arcade: ### Example configuration
880ce86a7f 2026-08-01        arcade: ```toml
880ce86a7f 2026-08-01        arcade: api_key = "123456789ABCdefGHIjklMNOpq"
880ce86a7f 2026-08-01        arcade: api_gateway = "https://api.telegram.org"
880ce86a7f 2026-08-01        arcade: listen_on = "127.0.0.1:1025"
880ce86a7f 2026-08-01        arcade: unknown = "relay"
880ce86a7f 2026-08-01        arcade: fields = ["date", "from", "subject"]
880ce86a7f 2026-08-01        arcade: domains = ["example.com", "localhost"]
880ce86a7f 2026-08-01        arcade: 
880ce86a7f 2026-08-01        arcade: default = 0
880ce86a7f 2026-08-01        arcade: 
880ce86a7f 2026-08-01        arcade: [recipients]
880ce86a7f 2026-08-01        arcade: "admin@example.com" = 12345678
880ce86a7f 2026-08-01        arcade: "alerts@example.com" = -10012345678
880ce86a7f 2026-08-01        arcade: ```
880ce86a7f 2026-08-01        arcade: 
880ce86a7f 2026-08-01        arcade: To catch bounces (so they wouldn't stuck in upper mail server) make sure sender
880ce86a7f 2026-08-01        arcade: envelope address is real as required by mail library (actually not sure whether
880ce86a7f 2026-08-01        arcade: this applies to mailin). For example Postfix has to be tweaked like this:
880ce86a7f 2026-08-01        arcade: 
880ce86a7f 2026-08-01        arcade: $config_directory/main.cf:
880ce86a7f 2026-08-01        arcade: 	smtp_generic_maps = hash:$config_directory/generic
880ce86a7f 2026-08-01        arcade: 
880ce86a7f 2026-08-01        arcade: $config_directory/generic:
880ce86a7f 2026-08-01        arcade: 	""	postmaster@example.com
880ce86a7f 2026-08-01        arcade: 	<>	postmaster@example.com
880ce86a7f 2026-08-01        arcade: 
880ce86a7f 2026-08-01        arcade: Actually not sure which one works...
880ce86a7f 2026-08-01        arcade: 
880ce86a7f 2026-08-01        arcade: ---
880ce86a7f 2026-08-01        arcade: 
880ce86a7f 2026-08-01        arcade: ## Usage
880ce86a7f 2026-08-01        arcade: 
880ce86a7f 2026-08-01        arcade: ### Run
880ce86a7f 2026-08-01        arcade: ```bash
880ce86a7f 2026-08-01        arcade: ./smtp2tg -c /path/to/smtp2tg.toml
880ce86a7f 2026-08-01        arcade: ```
880ce86a7f 2026-08-01        arcade: 
880ce86a7f 2026-08-01        arcade: ### CLI arguments
880ce86a7f 2026-08-01        arcade: | Argument      | Description               | Example               |
880ce86a7f 2026-08-01        arcade: |---------------|---------------------------|-----------------------|
880ce86a7f 2026-08-01        arcade: | `-h`, `--help` | Show help                 | `smtp2tg --help`      |
880ce86a7f 2026-08-01        arcade: | `-c`, `--config` | Path to config file     | `smtp2tg -c config.toml` |
880ce86a7f 2026-08-01        arcade: 
880ce86a7f 2026-08-01        arcade: ---
880ce86a7f 2026-08-01        arcade: 
880ce86a7f 2026-08-01        arcade: ## Security
880ce86a7f 2026-08-01        arcade: 
880ce86a7f 2026-08-01        arcade: ### Important
880ce86a7f 2026-08-01        arcade: - **Recommended usage**: Run on `127.0.0.1` (localhost) only.
880ce86a7f 2026-08-01        arcade: - If exposing to a network:
880ce86a7f 2026-08-01        arcade:   - **Restrict port access** via firewall.
880ce86a7f 2026-08-01        arcade:   - **Use TLS** (e.g., via `stunnel` or `nginx`).
880ce86a7f 2026-08-01        arcade:   - **Implement authentication** (this software does not provide it).
880ce86a7f 2026-08-01        arcade: 
880ce86a7f 2026-08-01        arcade: ### Config file permissions
880ce86a7f 2026-08-01        arcade: Set file permissions to `0600` (owner read/write only):
880ce86a7f 2026-08-01        arcade: ```bash
880ce86a7f 2026-08-01        arcade: chmod 600 smtp2tg.toml
880ce86a7f 2026-08-01        arcade: ```
880ce86a7f 2026-08-01        arcade: 
880ce86a7f 2026-08-01        arcade: ---
880ce86a7f 2026-08-01        arcade: ## How it works
880ce86a7f 2026-08-01        arcade: 1. A client (e.g., Postfix) sends an email to `listen_on` (e.g., `127.0.0.1:1025`).
880ce86a7f 2026-08-01        arcade: 2. smtp2tg parses the email and converts it to a Telegram message.
880ce86a7f 2026-08-01        arcade: 3. The message is sent to the specified chat (or `default` if address is unknown).
880ce86a7f 2026-08-01        arcade: 
880ce86a7f 2026-08-01        arcade: ### Example: Email → Telegram
880ce86a7f 2026-08-01        arcade: **Incoming email:**
880ce86a7f 2026-08-01        arcade: ```
880ce86a7f 2026-08-01        arcade: From: user@example.com
880ce86a7f 2026-08-01        arcade: To: admin@example.com
880ce86a7f 2026-08-01        arcade: Subject: Test
880ce86a7f 2026-08-01        arcade: 
880ce86a7f 2026-08-01        arcade: Hello, world!
880ce86a7f 2026-08-01        arcade: ```
880ce86a7f 2026-08-01        arcade: 
880ce86a7f 2026-08-01        arcade: **Telegram message:**
880ce86a7f 2026-08-01        arcade: ```
880ce86a7f 2026-08-01        arcade: <blockquote expandable>
880ce86a7f 2026-08-01        arcade: <u><i>Subject:</i></u> <code>Test</code>
880ce86a7f 2026-08-01        arcade: <u><i>From:</i></u> <code>user@example.com</code>
880ce86a7f 2026-08-01        arcade: <u><i>Date:</i></u> <code>Mon, 01 Jan 2024 12:00:00 +0000</code>
880ce86a7f 2026-08-01        arcade: </blockquote>
880ce86a7f 2026-08-01        arcade: <pre>Hello, world!</pre>
880ce86a7f 2026-08-01        arcade: ```
880ce86a7f 2026-08-01        arcade: 
880ce86a7f 2026-08-01        arcade: ---
880ce86a7f 2026-08-01        arcade: ## Links
880ce86a7f 2026-08-01        arcade: - **Original repository**: [http://fs.b1t.name/smtp2tg](http://fs.b1t.name/smtp2tg)
880ce86a7f 2026-08-01        arcade: - **GitHub Mirror**: [https://github.com/kworr/smtp2tg](https://github.com/kworr/smtp2tg)