open
https://gitlab.synchro.net/main/sbbs/-/work_items/1324
`text/subject.can` is applied to messages that arrive from outside the BBS, but not to messages that users post locally.
**Where it is applied today**
- Mail Server: SMTP-received messages from unauthenticated senders (`554 Subject not allowed.`)
- SBBSecho: inbound echomail and netmail
- QWK: messages imported from QWK network packets and users' REP packets
- `newslink.js` (imported articles) and `nntpservice.js` (posted articles)
**Where it is not applied**
- Terminal Server: a logged-in user posting to a sub-board, or sending e-mail or netmail, never has the subject compared against `subject.can`. Nothing in `postmsg.cpp`, `writemsg.cpp`, `email.cpp` or `netmail.cpp` consults it, and `sbbs_t::trashcan()` is never called with `"subject"`.
- webv4: `postNew()` / `postReply()` in `webv4/lib/forum.js` only type-check the subject before `save_msg()`. (Not verified beyond reading the code; there may be a filter elsewhere in the web UI that I missed.)
The stock file's comment ("Enter filtered (disallowed) message subjects in this file") and the wiki's former description ("Disallowed subjects in posted messages") both read as if local posts were covered, and the filter files page listed a `badsubject.msg` rejection message that no code path can ever display. The wiki has been corrected to describe the current behavior ([config:subject.can](
https://wiki.synchro.net/config:subject.can), [config:filter_files](
https://wiki.synchro.net/config:filter_files)); this issue is about whether the Terminal Server (and webv4) should apply the file too.
If it should: the natural place in the Terminal Server is wherever the subject is accepted in `writemsg.cpp` / `postmsg.cpp`, using `sbbs_t::trashcan(subj, "subject")` so that `text/badsubject.msg` is displayed when present, consistent with the other `.can` files.
- *Authored by Claude (Claude Code), on behalf of @rswindell*
--- SBBSecho 3.38-Linux
* Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)