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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
# neomutt-config
Privacy-focused NeoMutt configuration with multi-account support and anonymous Usenet posting via a mail2news gateway over Tor.
Full write-up: [Posting to Usenet Anonymously with NeoMutt and Mail2News over Tor](https://www.virebent.art/blog/)
---
## Features
- Multi-account IMAP/SMTP (STARTTLS, port 143/587)
- **Mail2news via Tor** — post to Usenet through a `.onion` SMTP gateway, no IP exposed
- F9 macro → interactive post script (newsgroup, subject, editor, review, send)
- Ephemeral `.invalid` From address — not traceable, not replyable
- No IMAP for the mail2news account — send-only
---
## Requirements
| Package | Purpose |
|------------|-------------------------------|
| `neomutt` | MUA |
| `tor` | Tor daemon (127.0.0.1:9050) |
| `torsocks` | Tor proxy wrapper |
| `swaks` | SMTP test/send tool |
| `vim` | Message editor |
On Arch:
```bash
pacman -S neomutt tor torsocks swaks
```
On Debian/Ubuntu:
```bash
apt install neomutt tor torsocks swaks
```
---
## Installation
```bash
git clone https://git.gabrielesalati.eu/gabrielesalati/neomutt-config
cd neomutt-config
mkdir -p ~/.config/neomutt/accounts
cp neomuttrc.common ~/.config/neomutt/neomuttrc.common
cp neomuttrc.tor ~/.config/neomutt/neomuttrc.tor
cp colors.mutt ~/.config/neomutt/colors.mutt
cp mailcap ~/.config/neomutt/mailcap
cp accounts/mail2news ~/.config/neomutt/accounts/mail2news
cp scripts/m2n-prompt.sh ~/.config/neomutt/m2n-prompt.sh
chmod +x ~/.config/neomutt/m2n-prompt.sh
```
---
## Mail2news usage
Start Tor, then launch NeoMutt through the Tor profile:
```bash
torsocks neomutt -F ~/.config/neomutt/neomuttrc.tor
```
Press **F9** from the index or pager. Answer the prompts:
```
Newsgroup(s): misc.test
Subject: test post
```
Write your message in the editor, review the draft, send.
The post goes to `mail2news@xilb7y4kj6u6qfo45o3yk2kilfv54ffukzei3puonuqlncy7cn2afwyd.onion`,
which forwards to Peanny NNTP and propagates from there.
### Send directly from the shell (no NeoMutt)
```bash
torsocks swaks \
--server xilb7y4kj6u6qfo45o3yk2kilfv54ffukzei3puonuqlncy7cn2afwyd.onion:25 \
--from nobody@virebent.invalid \
--to mail2news@xilb7y4kj6u6qfo45o3yk2kilfv54ffukzei3puonuqlncy7cn2afwyd.onion \
--header "Newsgroups: misc.test" \
--header "Subject: test post" \
--body "This is a test."
```
---
## File layout
```
~/.config/neomutt/
├── neomuttrc # main profile (clearnet accounts)
├── neomuttrc.common # shared UI/GPG/sidebar settings
├── neomuttrc.tor # Tor profile — sources mail2news account, F9 macro
├── colors.mutt # color theme
├── mailcap # MIME handlers
├── m2n-prompt.sh # mail2news posting script (called by F9)
└── accounts/
├── account1 # example IMAP/SMTP account
├── account2
├── account3
└── mail2news # send-only, onion SMTP, ephemeral From
```
---
## Keybindings
| Key | Action |
|-------|-------------------------|
| F2 | Switch to account 1 |
| F3 | Switch to account 2 |
| F4 | Switch to account 3 |
| F9 | Post to Usenet |
| B | Toggle sidebar |
---
## Gateway address
The mail2news gateway on `virebent.art` accepts unauthenticated SMTP on port 25
and forwards to Peanny NNTP over Tor. No registration required.
```
SMTP/mail2news onion:
xilb7y4kj6u6qfo45o3yk2kilfv54ffukzei3puonuqlncy7cn2afwyd.onion
```
|