# neomutt-config

Privacy-focused NeoMutt configuration with:
- Multi-account support (IMAP/SMTP)
- GPG/ECC signing on all accounts
- **Mail2news via Tor** — post to Usenet anonymously through a `.onion` SMTP gateway
- Cyberpunk color theme
- `pass`(1) integration for credential management (no plaintext passwords)

---

## Requirements

| Package      | Purpose                          |
|--------------|----------------------------------|
| `neomutt`    | MUA                              |
| `gpg`        | Signing/encryption               |
| `pass`       | Password storage                 |
| `torsocks`   | Tor proxy for mail2news          |
| `netcat`     | SMTP raw send (openbsd-netcat)   |
| `tor`        | Tor daemon                       |
| `vim`        | Composing messages               |
| `lynx`       | HTML email rendering in terminal |
| `pandoc`     | Markdown → HTML compose (opt.)   |

---

## Installation

```bash
git clone https://github.com/YOUR_USERNAME/neomutt-config
cd neomutt-config

# Copia i file di configurazione
mkdir -p ~/.config/neomutt/accounts
cp neomuttrc ~/.config/neomutt/neomuttrc    # oppure ~/.neomuttrc
cp colors.mutt ~/.config/neomutt/colors.mutt
cp mailcap ~/.config/neomutt/mailcap
cp accounts/* ~/.config/neomutt/accounts/
cp scripts/m2n-post.sh ~/.config/neomutt/m2n-post.sh
chmod +x ~/.config/neomutt/m2n-post.sh

# Cache per header/body IMAP
mkdir -p ~/.cache/neomutt/{headers,bodies}
```

---

## Setup account email

Ogni account ha un file in `~/.config/neomutt/accounts/`. Modifica i valori:

```
set from      = "user@example.com"
set imap_user = "user@example.com"
set folder    = "imap://mail.example.com:143"
set smtp_url  = "smtp://user%40example.com@mail.example.com:587"
```

### Password con `pass`

Usa [pass](https://www.passwordstore.org/) per non avere password in chiaro:

```bash
pass insert email/account1
```

Nel file account:
```
set imap_pass = "`pass email/account1`"
set smtp_pass = "`pass email/account1`"
```

---

## Generare una chiave ECC (Ed25519) con GPG

```bash
gpg --full-generate-key
# → scegli: (9) ECC (sign and encrypt) oppure (10) ECC (sign only)
# → curva: Ed25519
# → scadenza: a tua scelta (consigliato: 1-2 anni)
# → nome e indirizzo

# Mostra il fingerprint
gpg --list-secret-keys --keyid-format LONG

# Esempio output:
# sec   ed25519/AABBCCDDEEFF0011 2024-01-01
#       Key fingerprint = AABB CCDD EEFF 0011 ...
# uid   Your Name <user@example.com>
```

Copia il fingerprint (es. `AABBCCDDEEFF0011`) nel campo `pgp_default_key` e `pgp_sign_as` del file account.

### Chiave dedicata per mail2news

Si consiglia una chiave separata per i post Usenet, non legata alla propria identità email:

```bash
gpg --full-generate-key
# → usa un nome/email non riconducibile a te (es. "Anonymous <anon@anonymous.invalid>")
```

Aggiorna `FINGERPRINT_CHIAVE_ECC_MAIL2NEWS` in `accounts/mail2news` e in `scripts/m2n-post.sh`.

---

## Mail2news via Tor

Il sistema mail2news permette di inviare post Usenet attraverso un gateway SMTP `.onion`, senza rivelare il proprio IP.

### Configurazione

1. Avvia il daemon Tor
2. Modifica `scripts/m2n-post.sh` con i tuoi valori:

```bash
SMTP_ONION="INDIRIZZO.onion"           # server mail2news .onion
SMTP_PORT="25"
MAIL2NEWS_TO="mail2news@INDIRIZZO.onion"
FROM_ADDR="anon@anonymous.invalid"
GPG_KEY="FINGERPRINT_CHIAVE_ECC_MAIL2NEWS"
```

3. In NeoMutt premi **F9** per aprire lo script interattivo

### Flusso del post

```
F9 → Newsgroup → Subject → [References se Re:] → vim → Revisione → Invio
```

Il messaggio viene firmato con GPG/ECC prima dell'invio (clearsign inline, compatibile con i lettori Usenet).

### Server mail2news noti su Tor

Cerca gateway mail2news pubblici su Tor in:
- gruppi `alt.privacy`, `alt.anonymous.messages`
- [Tor hidden services directories]

---

## Keybindings

| Tasto | Azione                         |
|-------|-------------------------------|
| F2    | Account 1                     |
| F3    | Account 2                     |
| F4    | Account 3                     |
| F9    | Nuovo post mail2news           |
| B     | Toggle sidebar                 |
| Ctrl+P / Ctrl+N | Sidebar su/giù    |
| j/k   | Navigazione vim-like           |
| r/R   | Reply / Reply-all             |
| p     | Menu GPG in composizione       |

---

## Account FOG SMTP

FOG è un relay SMTP custom raggiungibile via Tor (`.onion`). Se usi il tuo server:

```
set smtp_url = "smtp://YOUR_FOG_ONION.onion:25"
set ssl_starttls = no
set ssl_force_tls = no
```

Assicurati di avviare `torsocks` prima di NeoMutt oppure configura un proxy SOCKS5:

```bash
torsocks neomutt
```

---

## Struttura file

```
~/.config/neomutt/
├── neomuttrc              # configurazione principale
├── colors.mutt            # tema cyberpunk
├── mailcap                # handler MIME
├── m2n-post.sh            # script mail2news
└── accounts/
    ├── account1           # account email 1
    ├── account2           # account email 2
    ├── account3           # account con FOG SMTP
    └── mail2news          # mittente fisso per Usenet
```
