██████╗ ███████╗████████╗████████╗███████╗██████╗
██╔══██╗██╔════╝╚══██╔══╝╚══██╔══╝██╔════╝██╔══██╗
██████╔╝█████╗ ██║ ██║ █████╗ ██████╔╝
██╔══██╗██╔══╝ ██║ ██║ ██╔══╝ ██╔══██╗
██████╔╝███████╗ ██║ ██║ ███████╗██║ ██║
╚═════╝ ╚══════╝ ╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═╝
███╗ ██╗███████╗██╗ ██╗███████╗ ██████╗ ██████╗ ██████╗ ██╗ ██╗██████╗ ███████╗
████╗ ██║██╔════╝██║ ██║██╔════╝██╔════╝ ██╔══██╗██╔═══██╗██║ ██║██╔══██╗██╔════╝
██╔██╗ ██║█████╗ ██║ █╗ ██║███████╗██║ ███╗██████╔╝██║ ██║██║ ██║██████╔╝███████╗
██║╚██╗██║██╔══╝ ██║███╗██║╚════██║██║ ██║██╔══██╗██║ ██║██║ ██║██╔═══╝ ╚════██║
██║ ╚████║███████╗╚███╔███╔╝███████║╚██████╔╝██║ ██║╚██████╔╝╚██████╔╝██║ ███████║
╚═╝ ╚═══╝╚══════╝ ╚══╝╚══╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚══════╝
A two-way gateway between Usenet newsgroups and the forums of The Major BBS v10.
By Sysop Network — https://github.com/SysopNetwork/Better-Newsgroups
Articles in a newsgroup appear as messages in a BBS forum, threaded the way they were on Usenet. Messages your users write in that forum are posted back to the newsgroup. Everything runs inside the BBS as one module (SNBETNWS), with no external programs or scheduled tasks to set up.
| Feature | Description | |
|---|---|---|
| 🔁 | Import and export | Each linked newsgroup can bring articles in, send forum messages out, or both |
| 📰 | Any NNTP server | Works with any news server, with an AUTHINFO login when the server needs one |
| 🔒 | Encrypted connections | TLS (usually port 563) or STARTTLS, with certificate checking |
| 🧵 | Threading kept both ways | Usenet replies are filed in the right forum thread; BBS replies carry proper References headers |
| 🚫 | No loops or duplicates | Imported messages are never posted back, and the module recognizes its own posts when the server sends them back |
| 🔤 | Readable text | MIME, quoted-printable, Base64, UTF-8 and other character sets become CP437; HTML-only articles become plain text; long articles are split across messages |
| ✉️ | Posts look right on Usenet | UTF-8 text with colour codes removed, the user's BBS mail address, an optional signature line and Organization |
| 📚 | Backfill | A new group can start with its last 0–9999999 articles, or ALL the server still has, read over several checks |
| 📤 | Reliable posting | An outgoing queue with retries; if a post finally fails, the author gets a BBS e-mail saying why |
| 🛠️ | All settings online | Changed from the module's Sysop menu while the board runs, applied at once, with no CNF options |
| ⚡ | Never slows the board | All network work happens on a background thread |
| 📜 | Audit Trail and transcript | Problems (and, if wanted, normal activity) go to the Audit Trail; an optional server transcript never contains passwords |
- The Major BBS v10 (the module is 32-bit, like every v10 module, and runs on 64-bit Windows)
- An account on an NNTP news server
- Download
Better-Newsgroups-v1.0.0.zipfrom Releases. - Copy
SNBETNWS.DLL,SNBETNWS.MDF,SNBETNWS.MSGandSNBETNWS.RLNto the BBS directory. - Add Better Newsgroups to a Sysop menu with the Menu Tree Editor.
- Restart the BBS. The data files (
SNBETNWS.DAT,SNBETMID.DAT) are created on first start.
Enter the module from the menu (the SYSOP key is required).
- Settings 2–7: your news server, port, connection security and login.
- G: link each newsgroup to a forum. Create the forums first with the usual forum tools.
- Setting 1 to YES, then C to check right away. The status line and the Audit Trail show the result.
Each setting has help: type ? at its prompt, or H and its number at the menu.
All settings live in SNBETNWS.DAT and are edited online from the module's Sysop menu. A change applies at once; there are no CNF options.
| # | Setting | Description | Default |
|---|---|---|---|
| 1 | Gateway enabled | Turns all checking and posting on or off | NO |
| 2 | News server | Host name of the NNTP server | (none) |
| 3 | News server port | 119 for plain or STARTTLS, 563 for TLS | 119 |
| 4 | Connection security | NONE, STARTTLS or TLS | NONE |
| 5 | Verify TLS certificate | Check the server's certificate (recommended) | YES |
| 6 | Login name | AUTHINFO login name; - for none | (none) |
| 7 | Password | AUTHINFO password, never shown once set; - clears it | (none) |
| 8 | Check every (minutes) | How often the server is checked, 1–1440 | 10 |
| 9 | Timeout (seconds) | How long to wait for the server, 10–300 | 60 |
| # | Setting | Description | Default |
|---|---|---|---|
| 10 | Articles for a new group | How many existing articles a new link starts with: 0–9999999, or ALL | 50 |
| 11 | Most articles per check | Per newsgroup, 1–1000; a larger backlog continues next check | 200 |
| 12 | Largest article (KB) | Larger articles are imported as a short notice, 4–1024 | 64 |
| 19 | Sender line in messages | Put the sender's name, address and the date at the top of imported messages | YES |
| 20 | Word-wrap column | Word-wrap imported text at this column, 40–132; 0 leaves lines as sent | 79 |
| 21 | Keep Message-IDs (days) | How long the BBS remembers which forum message is which article (no duplicates, threading), 7–3650 | 365 |
| # | Setting | Description | Default |
|---|---|---|---|
| 13 | From name | Display name on posts; {USER} = User-ID, {BBS} = BBS name | {USER} |
| 14 | Message-ID host name | Host name in each post's Message-ID; set it when the mail host name is not a real domain | BBS mail host name |
| 15 | Organization | One-line Organization header | (none) |
| 16 | Key needed to post | Limit posting to Usenet to users holding this key | anyone who can write in the forum |
| 17 | Retry interval (minutes) | Wait between attempts to send a post, 1–1440 | 15 |
| 18 | Give up after (hours) | A post still unsent after this long is dropped and its author told, 1–720 | 48 |
| # | Setting | Description | Default |
|---|---|---|---|
| 22 | Audit normal activity | Record each check that found articles, and each post sent, in the Audit Trail | NO |
| 23 | Audit errors | Write problems to the Audit Trail | YES |
| 24 | Transcript log file | Record the server conversation in SNBETNWS.LOG (passwords are never written) | NO |
Each link joins one newsgroup to one forum. Several newsgroups may share one forum; export then posts to all of them at once, as one cross-posted article.
| Setting | Description |
|---|---|
| Newsgroup | The newsgroup's name, exactly as the news server lists it |
| Forum | The BBS forum it is linked to |
| Import articles | Copy the group's articles into the forum |
| Export messages | Post what users write in the forum to the group |
| Next article number | The next article to read; 0 starts over with the newest articles (setting 10), without importing anything twice |
| Key | Action |
|---|---|
1–24 |
Change a setting |
N |
Other page of settings |
G |
Newsgroup links |
C |
Check the news server now |
Q |
Posts waiting to be sent |
H |
Help (H 12 explains setting 12) |
X |
Exit |
Users read and write in the linked forums as they do in any other forum. Forum access settings decide who can read and who can post; setting 16 can further limit posting to Usenet to users who hold a key.
A forum's message lifetime still applies: the BBS's nightly cleanup removes older imported articles like any other forum message.
Better-Newsgroups/
├── SRC/
│ ├── SNBETNWS.C # module: Sysop menu, settings, import, export hook, timer
│ ├── BNWORK.C # background worker: one news server session per check
│ ├── BNNNTP.C # NNTP client (AUTHINFO, GROUP, ARTICLE, POST, STARTTLS)
│ ├── BNART.C # articles in and out (headers, MIME, References)
│ ├── BNSPOOL.C # incoming spool between the worker and the BBS thread
│ ├── BNVER.H # the version number
│ ├── SNBETNWS.MSG # all text the module shows (CP437, Sysop-editable)
│ ├── SNBETNWS.MDF # module definition
│ ├── SNBETNWS.RLN # release notes / online manual
│ └── SHARED/ # TLS sockets, MIME and character set code
├── TESTS/ # BNTEST unit tests
├── TOOLS/ # BNFETCH command-line test tool
└── DIST/v1.0.0/ # the deployable files
The network work runs on a background thread that never touches the BBS. Articles it fetches are written to SNBETNWS\IN\ and imported into forums a few at a time by the BBS's own thread. A message written in a linked forum is turned into an article at once, queued in SNBETNWS\OUT\, and posted by the worker. SNBETMID.DAT maps every Message-ID to its forum message, which is how threads are kept and loops prevented.
See TECHNICAL.MD for the details and BUILDING.MD to build from source.
Report problems at https://github.com/SysopNetwork/Better-Newsgroups/issues. Include the Audit Trail lines and, if you can, a transcript from setting 24. The transcript never contains passwords.
Better Newsgroups is developed and maintained by Mark Laudenbach at Sysop Network.
The files in SRC/SHARED/ are shared with Sysop Network's Better Internet Email.
If this module is useful to you, tips are appreciated:
- Cash App: https://cash.app/$laudenbachm
- Ko-fi: https://ko-fi.com/laudenbachm
MIT — Copyright (c) 2026 Sysop Network. See LICENSE.
Better Newsgroups for The Major BBS v10 by Mark Laudenbach - https://github.com/laudenbachm