Skip to content
go-while edited this page Nov 11, 2026 · 2 revisions

mbox2nntp

mbox2nntp feeds Usenet archives to an NNTP server, one article at a time, with IHAVE. It was written to load the archive.org Usenet collections into INN2.

Each run takes one input:

  • an mbox file: NAME.mbox, NAME.bag, or a NAME.txt whose first line begins with From ;
  • a compressed mbox: NAME.mbox.gz, NAME.mbox.zip, NAME.mbox.7z;
  • a Usenet Archive Toolkit (UAT) archive: NAME.usenet, NAME.usenet.xz, NAME.usenet.7z;
  • a directory with one article per file, such as an INN spool.

When every article has been answered and none failed, the input is renamed INPUT.done. A batch script can then run again over the same files and skip the finished ones.

The tools

tool what it does reference
mbox2nntp feeds one input to a server README
iafetch downloads the archive.org items in import order, gently, and records in SQLite what it got cmd/iafetch/README.md
ncexport turns a NewsCache spool (the textusenet-backup items) into one mbox per group cmd/ncexport/README.md
uatexport writes a UAT archive out as an mbox, or one file per article cmd/uatexport/README.md
contrib/uat-fetch-export.sh downloads the two UAT collections and runs uatexport on each group the script (-h for its options)

The mbox parser is a separate library, go-lib-mbox2nntp. It knows a fixed list of message separator shapes; see its README for the list and how to add one.

Pages

  • Installation: release binaries, building, and the external programs (7-Zip, zstd, xz) per system.
  • Quick start: one mbox into a server, with a dry run first.
  • Importing the collections: archive.org end to end, from download to server, in import order, with batch scripts.
  • iafetch: recipes for the downloader.
  • ncexport: recipes for NewsCache spools.
  • uatexport: recipes for UAT archives.
  • Reading the log: the summary line, the per-file line, reply codes, and when an input is marked done.
  • Troubleshooting: what to do when an input is not marked done, and other problems.
  • FAQ

Where the details are

This wiki has task guides. The READMEs and each tool's -h output are the reference for flags and exact behaviour. Where this wiki and a README differ, the README is right.

  • CHANGELOG.md: what changed in each release.
  • The code review this version came out of. It lists every bug found and fixed, and says which already-imported articles were affected.
  • Releases

Clone this wiki locally