Privacy-focused NeoMutt configuration with multi-account support and anonymous Usenet posting via mail2news over Tor
Find a file
2026-05-31 03:21:39 +02:00
accounts Add YubiKey PIV Ed25519 signature support for mail2news 2026-05-31 01:32:59 +02:00
scripts Add vim-yubisigner wrapper and installation instructions 2026-05-31 03:19:13 +02:00
.gitignore Initial public release 2026-05-23 02:48:34 +02:00
colors.mutt Initial public release 2026-05-23 02:48:34 +02:00
mailcap Initial public release 2026-05-23 02:48:34 +02:00
neomuttrc Initial public release 2026-05-23 02:48:34 +02:00
neomuttrc.common update: real mail2news config with virebent.art onion addresses, add Tor profile and posting script 2026-05-26 00:06:05 +02:00
neomuttrc.tor update: real mail2news config with virebent.art onion addresses, add Tor profile and posting script 2026-05-26 00:06:05 +02:00
README.md Fix blog post URL 2026-05-31 03:21:39 +02:00

neomutt-config

Security-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


Features

  • Multi-account IMAP/SMTP (STARTTLS, port 143/587)
  • Mail2news via Tor — post to Usenet through a .onion SMTP gateway, no IP exposed
  • YubiKey PIV Ed25519 signatures — automatic signing with hardware key (PGP-like clearsign format)
  • F7/F9 macro → interactive post script (newsgroup, subject, editor, review, send)
  • Ephemeral .invalid From address
  • 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
yubisigner-cli YubiKey PIV signing (optional)

On Arch:

pacman -S neomutt tor torsocks swaks

On Debian/Ubuntu:

apt install neomutt tor torsocks swaks

YubiKey signing (optional)

For automatic post signing with YubiKey PIV Ed25519:

  1. Configure YubiKey PIV slot 9c with Ed25519 key (one-time setup)
  2. Install yubisigner-cli:
    cd ~/bin
    git clone https://git.virebent.art/virebent/yubisigner-cli
    cd yubisigner-cli
    go build -o yubisigner-cli main.go
    
  3. Install vim-yubisigner wrapper from this repo:
    mkdir -p ~/bin
    cp scripts/vim-yubisigner ~/bin/vim-yubisigner
    chmod +x ~/bin/vim-yubisigner
    

The mail2news account is pre-configured to use vim-yubisigner as editor, which automatically signs messages with YubiKey after editing.


Installation

git clone https://git.virebent.art/virebent/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:

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@qee4i7sags6phsvb2yodwecfj7noimfhhalsjktsvikrwotxzis3raad.onion, which forwards to the NNTP server and propagates from there.

Posts are automatically signed with YubiKey PIV Ed25519 in PGP-like clearsign format if vim-yubisigner is configured.

Send directly from the shell (no NeoMutt)

torsocks swaks \
    --server qee4i7sags6phsvb2yodwecfj7noimfhhalsjktsvikrwotxzis3raad.onion:25 \
    --from   nobody@virebent.invalid \
    --to     mail2news@qee4i7sags6phsvb2yodwecfj7noimfhhalsjktsvikrwotxzis3raad.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 (peannyjkqwqfynd24p6dszvtchkq7hfkwymi5by5y332wmosy5dwfaqd.onion) over Tor. No registration required.

SMTP/mail2news onion:
qee4i7sags6phsvb2yodwecfj7noimfhhalsjktsvikrwotxzis3raad.onion:25