• PyGate Has been released

    From Stephen Walsh@3:633/280 to Sean Rima on Wed Jan 28 22:54:48 2026
    Hello Sean,

    Instead of beating a old horse that is soupgate/spoon, how about trying something that has been recently written and
    released to the public.



    PyGate - Python FidoNet-NNTP Gateway, has been released to the public.

    PyGate is a Python-based gateway system that bridges FidoNet echomail and NNTP newsgroups, allowing seamless message
    exchange between the two networks.

    Version: 1.5.6
    Author: Stephen Walsh
    Contact: vk3heg@gmail.com | FidoNet 3:633/280 | FSXNet 21:1/195 | Amiganet 39:901/280
    Based on: SoupGate by Tom Torfs

    https://github.com/vk3heg/pygate


    Features
    Core Functionality

    Bidirectional Gateway: Messages flow seamlessly between FidoNet and NNTP
    Flexible Deployment Modes: Full gateway mode or client-only mode
    Area Mapping: Flexible mapping between FidoNet areas and NNTP newsgroups
    Message Hold System: Manual review and approval of messages
    Spam Filtering: Advanced regex-based filtering with built-in patterns
    Netmail Notifications: Automatic notifications for held messages
    Areafix Support: Dynamic area management via netmail with wildcard protection
    Character Set Handling: Proper encoding conversion per FTS standards

    Advanced Features

    Message Deduplication: Prevents duplicate messages
    Cross-posting Control: Configurable limits on cross-posted messages
    Timezone Support: Proper timezone handling (TZUTC)
    Message Threading: Preserves reply chains and references
    Administrative Panel: Admin panel interface for message review of held messages, filter management, newsrc
    management, newsgroups list viewing.

    Requirements

    Python 3.7 or higher
    NNTP server access
    FidoNet mailer (binkd recommended)
    Required Python packages:
    configparser
    pathlib
    logging
    datetime
    uuid
    json
    paramiko (for SSH/remote ctlinnd on Windows deployments)
    psutil (for automation script process management)


    Deployment Modes

    PyGate supports two deployment modes:
    Full Gateway Mode (Default)

    In this mode, PyGate manages both the NNTP connection and the server configuration:

    Updates local newsrc file when areas are added/removed
    Executes ctlinnd commands to create/remove newsgroups on NNTP server
    Requires server administrative privileges or SSH access
    Best for deployments where PyGate runs on or manages the news server

    [Gateway]
    client_mode = false # or omit this line (false is default)

    Client-Only Mode

    In this mode, PyGate operates as a standard NNTP client without server management:

    Updates local newsrc file when areas are added/removed
    Does NOT execute ctlinnd commands
    Assumes newsgroups already exist on the remote NNTP server
    Does not require server administrative privileges
    Best for connecting to external/remote news servers you don't control

    [Gateway]
    client_mode = true

    When to use client-only mode:

    Connecting to a remote news server you don't administer
    Using a commercial or third-party news provider
    Testing PyGate without affecting server configuration
    Security-restricted environments where ctlinnd access is unavailable

    Note: In client-only mode, areafix operations will still update your local newsrc file, but you must ensure the
    corresponding newsgroups exist on the NNTP
    server before subscribing to them.


    Message Hold System

    The hold system allows manual review of messages before they are gated, providing control over message flow. When
    areas are remapped to fidonet echomail
    areas. This is mainly to protect fidonet from usenet spam.

    Configuration

    Enable holding in pygate.cfg:

    [Arearemap]
    Hold = yes
    notify_sysop = yes

    How It Works

    Message Evaluation: Each message is checked against area mappings
    Hold Decision: Messages in mapped areas are held for review
    Notification: Netmail sent to sysop (once per hour maximum)
    Review Process: Admin reviews messages via admin panel
    Action: Messages are approved, rejected, or archived

    Notification System

    When messages are held:

    Netmail sent to sysop at linked_address
    Rate Limited: Maximum one notification per hour
    Comprehensive: Lists all areas with pending messages
    Tracking: State saved in hold/notifications.json





    Stephen



    --- GoldED+/LNX 1.1.5-b20250409
    * Origin: Dragon's Lair ---:- dragon.vk3heg.net -:--- Prt: 6800 (3:633/280)
  • From Sean Rima@2:263/1 to Stephen Walsh on Wed Jan 28 12:30:03 2026

    Hello Stephen!

    28 Jan 26 22:54, you wrote to me:

    Hello Sean,

    Instead of beating a old horse that is soupgate/spoon, how about
    trying something that has been recently written and released to the public.

    I have been a long time user of soupgate and prefer it.

    Sean


    ... TCOB1: binkd only binkd.rima.ie
    --- FMail-lnx 2.3.2.6-B20251227
    * Origin: TCOB1 A Mail Only System (2:263/1)
  • From Sean Rima@2:263/1 to Stephen Walsh on Wed Jan 28 12:47:07 2026

    Hello Stephen!

    28 Jan 26 22:54, you wrote to me:

    Hello Sean,

    Instead of beating a old horse that is soupgate/spoon, how about
    trying something that has been recently written and released to the public.



    PyGate - Python FidoNet-NNTP Gateway, has been released to the public.

    PyGate is a Python-based gateway system that bridges FidoNet echomail
    and NNTP newsgroups, allowing seamless message exchange between the
    two networks.

    In fairness I almost went down the python route. I will give PyGate a try :) Sean


    ... TCOB1: binkd only binkd.rima.ie
    --- FMail-lnx 2.3.2.6-B20251227
    * Origin: TCOB1 A Mail Only System (2:263/1)
  • From Stephen Walsh@3:633/280 to Sean Rima on Thu Jan 29 10:17:40 2026

    Hello Sean!

    28 Jan 26 12:30, you wrote to me:

    Instead of beating a old horse that is soupgate/spoon, how about
    trying something that has been recently written and released to
    the public.

    I have been a long time user of soupgate and prefer it.

    I got frustrated with it's quirks and the way things worked.

    PyGate was the result. It's actually gone further then what I initially planed.



    Stephen


    --- GoldED+/LNX 1.1.5-b20250409
    * Origin: Dragon's Lair ---:- dragon.vk3heg.net -:--- Prt: 6800 (3:633/280)
  • From Stephen Walsh@3:633/280 to Sean Rima on Thu Jan 29 10:19:34 2026

    Hello Sean!

    28 Jan 26 12:47, you wrote to me:

    PyGate is a Python-based gateway system that bridges FidoNet
    echomail and NNTP newsgroups, allowing seamless message exchange
    between the two networks.

    In fairness I almost went down the python route. I will give PyGate a
    try :) Sean

    On my news server it runs every half an hour and the run time is 2-4 seconds to go through over 400 news groups.



    Stephen


    --- GoldED+/LNX 1.1.5-b20250409
    * Origin: Dragon's Lair ---:- dragon.vk3heg.net -:--- Prt: 6800 (3:633/280)
  • From Stephen Walsh@3:633/280 to Sean Rima on Thu Jan 29 10:25:46 2026

    Hello Sean!

    28 Jan 26 12:47, you wrote to me:

    PyGate is a Python-based gateway system that bridges FidoNet
    echomail and NNTP newsgroups, allowing seamless message exchange
    between the two networks.

    In fairness I almost went down the python route. I will give PyGate a
    try :) Sean

    On my news server it runs every half an hour and the run time is 2-4 seconds to go through 443 news groups.
    Of course the more often it's run the less work that needs to happen. #-)

    Tommi has it setup, and provided feedback on couple of things, that got fixed/added.




    Stephen


    --- GoldED+/LNX 1.1.5-b20250409
    * Origin: Dragon's Lair ---:- dragon.vk3heg.net -:--- Prt: 6800 (3:633/280)
  • From Tommi Koivula@2:221/1 to Stephen Walsh on Thu Jan 29 13:29:54 2026
    Hi Stephen.

    29 Jan 26 10:25, you wrote to Sean Rima:

    On my news server it runs every half an hour and the run time is 2-4 seconds to
    go through 443 news groups. Of course the more often it's run the less work
    that needs to happen. #-)

    Tommi has it setup, and provided feedback on couple of things, that got fixed/added.

    Yep. :)

    I'm thinking about one feature of Soupgate. It will reject dupes, "own" fido messages coming back from usenet by checking "Organization" field. I have these lines in my soupgate config:

    Organization RBBSG
    OwnOrgAction move
    OwnOrgArea RBB.NEWS.OWN

    I know that PyGate will adjust the message count by one every time it sends a message to news server but it is possible "own" messages to come back other route.

    Maybe a filter would fix this. Like:

    ^X-Organization:.*RBBSG
    Organization:.*RBBSG
    ^From:.*fidonet.fi

    One more thing I like in PyGate is Areafix, and that it can command INN. :-)

    'Tommi

    --- GoldED+/LNX 1.1.5-b20250409
    * Origin: nntps://news.fidonet.fi (2:221/1)
  • From Tommi Koivula@2:221/1 to Stephen Walsh on Thu Jan 29 14:09:00 2026

    Hi Stephen,

    I see these ERRORs when PyGate is trying to post to INN:

    29-Jan-26 00:30:01 - INFO - Processing packet: /bbs/pygate/inbound/697a8dc9.pkt 29-Jan-26 00:30:01 - INFO - Parsed 1 messages from /bbs/pygate/inbound/697a8dc9.pkt
    29-Jan-26 00:30:01 - INFO - Loaded 10 areas from config/newsrc
    29-Jan-26 00:30:01 - INFO - Connecting to NNTP server 192.168.10.2:119 29-Jan-26 00:30:01 - INFO - Posting message to fidotest: Re: Test
    29-Jan-26 00:30:01 - ERROR - Failed to post message: 441 Can't parse Message-ID header field body
    29-Jan-26 00:30:01 - INFO - Area FIDOTEST: 0 gated, 0 filtered, 1 failed 29-Jan-26 00:30:01 - INFO - Processing packet: /bbs/pygate/inbound/697a8d5d.pkt 29-Jan-26 00:30:01 - INFO - Parsed 1 messages from /bbs/pygate/inbound/697a8d5d.pkt
    29-Jan-26 00:30:01 - INFO - Loaded 10 areas from config/newsrc
    29-Jan-26 00:30:01 - INFO - Posting message to fidotest: Re: Test
    29-Jan-26 00:30:01 - ERROR - Failed to post message: 441 Can't parse Message-ID header field body
    29-Jan-26 00:30:01 - INFO - Area FIDOTEST: 0 gated, 0 filtered, 1 failed 29-Jan-26 00:30:01 - INFO - Import complete: 2 packets processed


    If I check the saved .PKT's there are Syncronet-style MSGID's:

    MSGID: 5036.fidonet_fidotest@1:135/205 2ddfd6b0
    MSGID: 2022.fidonet_fidotest@1:218/601 2ddfcb0d

    'Tommi

    ---
    * Origin: ------------------- (2:221/1)
  • From Richard Menedetter@2:310/31 to Stephen Walsh on Thu Jan 29 14:34:50 2026
    Hi Stephen!

    28 Jan 2026 22:54, from Stephen Walsh -> Sean Rima:

    Instead of beating a old horse that is soupgate/spoon, how about
    trying something that has been recently written and released to the public.

    Interesting

    PyGate - Python FidoNet-NNTP Gateway, has been released to the public.

    I wanted to play around with the mail capabilities.

    Stephen

    CU, Ricsi

    ... Engineering is the art of making what you want from things you can get.
    --- GoldED+/LNX
    * Origin: Advice is usually worth what it cost. (2:310/31)
  • From Sean Rima@2:263/1 to Stephen Walsh on Thu Jan 29 18:04:50 2026

    Hello Stephen!

    29 Jan 26 10:17, you wrote to me:


    Instead of beating a old horse that is soupgate/spoon, how about
    trying something that has been recently written and released to
    the public.

    I have been a long time user of soupgate and prefer it.

    I got frustrated with it's quirks and the way things worked.

    PyGate was the result. It's actually gone further then what I
    initially planed.

    Yeah well that is what we all do I guess. I am still considering a Python version of my own. I tried yours and it won't link to my nntp server, god knows why

    Sean


    ... TCOB1: binkd only binkd.rima.ie
    --- FMail-lnx 2.3.2.6-B20251227
    * Origin: TCOB1 A Mail Only System (2:263/1)
  • From Sean Rima@2:263/1 to Stephen Walsh on Thu Jan 29 18:06:00 2026

    Hello Stephen!

    29 Jan 26 10:19, you wrote to me:


    PyGate is a Python-based gateway system that bridges FidoNet
    echomail and NNTP newsgroups, allowing seamless message exchange
    between the two networks.

    In fairness I almost went down the python route. I will give
    PyGate a try :) Sean

    On my news server it runs every half an hour and the run time is 2-4 seconds to go through over 400 news groups.

    Python is very swift that way alright

    Sean


    ... TCOB1: binkd only binkd.rima.ie
    --- FMail-lnx 2.3.2.6-B20251227
    * Origin: TCOB1 A Mail Only System (2:263/1)
  • From Sean Rima@2:263/1 to Stephen Walsh on Thu Jan 29 18:07:03 2026

    Hello Stephen!

    29 Jan 26 10:25, you wrote to me:


    PyGate is a Python-based gateway system that bridges FidoNet
    echomail and NNTP newsgroups, allowing seamless message exchange
    between the two networks.

    In fairness I almost went down the python route. I will give
    PyGate a try :) Sean

    On my news server it runs every half an hour and the run time is 2-4 seconds to go through 443 news groups. Of course the more often it's
    run the less work that needs to happen. #-)

    Tommi has it setup, and provided feedback on couple of things, that
    got fixed/added.

    One of the additions I did to spoon was to add multiple nntp servers and newsrc files. Currently working with 3 different nntp servers for stuff I like

    Sean


    ... TCOB1: binkd only binkd.rima.ie
    --- FMail-lnx 2.3.2.6-B20251227
    * Origin: TCOB1 A Mail Only System (2:263/1)
  • From Stephen Walsh@3:633/280 to Tommi Koivula on Fri Jan 30 10:55:02 2026

    Hello Tommi!

    29 Jan 26 13:29, you wrote to me:

    I know that PyGate will adjust the message count by one every time it sends a message to news server but it is possible "own" messages to
    come back other route.

    INN should take care of that, but adding rules to the filter.cfg file will also work.

    Maybe a filter would fix this. Like:

    ^X-Organization:.*RBBSG
    Organization:.*RBBSG
    ^From:.*fidonet.fi

    These would be the one's I'd use to do that.

    ^Organization:(?i).rbbsg
    ^Injection-Info:(?i)news\.rbbsg\.net
    ^NNTP-Posting-Host:(?i)news\.rbbsg\.net


    One more thing I like in PyGate is Areafix, and that it can command
    INN. :-)

    Yeah. I initially started coding pygate as a areafix module for soupgate, then got annoyed at all the steps that the
    soupgate system took.. It was also prone to one step failing in my testing.

    So pygate morphed into what it is now, and the ability to run on the INN news server or remotely.



    Stephen


    --- GoldED+/LNX 1.1.5-b20250409
    * Origin: Dragon's Lair ---:- dragon.vk3heg.net -:--- Prt: 6800 (3:633/280)
  • From Stephen Walsh@3:633/280 to Richard Menedetter on Fri Jan 30 11:26:38 2026

    Hello Richard!

    29 Jan 26 14:34, you wrote to me:

    PyGate - Python FidoNet-NNTP Gateway, has been released to the
    public.

    I wanted to play around with the mail capabilities.

    Pygate don't do email's and isn't something I'm wanting it to do.



    Stephen


    --- GoldED+/LNX 1.1.5-b20250409
    * Origin: Dragon's Lair ---:- dragon.vk3heg.net -:--- Prt: 6800 (3:633/280)
  • From Stephen Walsh@3:633/280 to Sean Rima on Fri Jan 30 11:30:58 2026

    Hello Sean!

    29 Jan 26 18:04, you wrote to me:

    PyGate was the result. It's actually gone further then what I
    initially planed.

    Yeah well that is what we all do I guess. I am still considering a
    Python version of my own. I tried yours and it won't link to my nntp server, god knows why

    Send me the logfile and your config (Change any passwords to password).



    Stephen


    --- GoldED+/LNX 1.1.5-b20250409
    * Origin: Dragon's Lair ---:- dragon.vk3heg.net -:--- Prt: 6800 (3:633/280)
  • From Stephen Walsh@3:633/280 to Tommi Koivula on Fri Jan 30 11:32:12 2026

    Hello Tommi!

    29 Jan 26 14:09, you wrote to me:

    29-Jan-26 00:30:01 - INFO - Processing packet:
    [...]
    failed 29-Jan-26 00:30:01 - INFO - Import complete: 2 packets
    processed

    If I check the saved .PKT's there are Syncronet-style MSGID's:

    MSGID: 5036.fidonet_fidotest@1:135/205 2ddfd6b0
    MSGID: 2022.fidonet_fidotest@1:218/601 2ddfcb0d

    I did add support for Syncronet-style MSGID's, can yo drop the packets into my system, and I'll have a look.
    zip them up as syncpkt.zip please.


    Stephen


    --- GoldED+/LNX 1.1.5-b20250409
    * Origin: Dragon's Lair ---:- dragon.vk3heg.net -:--- Prt: 6800 (3:633/280)
  • From Tommi Koivula@2:221/1.1 to Stephen Walsh on Fri Jan 30 10:07:50 2026
    Hi Stephen.

    30 Jan 26 10:55:02, you wrote to me:

    I know that PyGate will adjust the message count by one every time
    it sends a message to news server but it is possible "own" messages
    to come back other route.

    INN should take care of that,

    Nope. I'm talking about the situation when I send a message from fido to news. It has a MSGID:

    @MSGID: 2:221/1 697c6658

    It appears at INN like this:

    Message-ID: <697c6658.2.221.1@fidonet.fi>
    X-FTN-MSGID: 2:221/1 697c6658

    But when I fetch the same message from INN to fido, it has a MSGID like this:

    @MSGID: <697c6658.2.221.1@fidonet.fi> d604975d

    So it wont be detected as a dupe.

    The original fido MSGID is saved in the nntp-message. Maybe that should be used as a fido MSGID if it exists?

    'Tommi

    ---
    * Origin: Point One (2:221/1.1)
  • From Sean Rima@2:263/1 to Stephen Walsh on Fri Jan 30 13:22:57 2026

    Hello Stephen!

    30 Jan 26 11:30, you wrote to me:

    PyGate was the result. It's actually gone further then what I
    initially planed.

    Yeah well that is what we all do I guess. I am still considering
    a Python version of my own. I tried yours and it won't link to my
    nntp server, god knows why

    Send me the logfile and your config (Change any passwords to
    password).

    I changed the newsrc to the one I have with soupgate and spoon and it worked fine :)

    From: TheCivvie <usenet@rima-iot.eu>
    Newsgroups: alt.test
    Subject: Testing pygate
    Mime-Version: 1.0
    Content-Type: text/plain; charset=utf-8
    Date: Fri, 30 Jan 2026 13:20:38 +0000
    Organization: UsenetPrime - www.usenetprime.com
    Sender: usenet@rima-iot.eu
    Message-Id: <697cb006.2.263.1@rima-iot.eu>
    X-Gateway: PyGate FidoNet-NNTP Gateway
    X-Fidonet-Area: ALT.TEST
    X-Ftn-Msgid: 2:263/1 697cb006
    X-Ftn-From: TheCivvie
    Lines: 9
    Path: nntp.eternal-september.org!eternal-september.org!feeder.eternal-september.org!2 .eu.feeder.erje.net!feeder.erje.net!feeder3.feed.ams11.usenet.farm!feed.usenet. farm!peer02.ams4!peer.am4.highwinds-media.com!news.highwinds-media.com!feeder.u senetexpress.com!tr1.eu1.usenetexpress.com!news.usenetprime.com!not-for-mail
    Nntp-Posting-Date: Fri, 30 Jan 2026 13:20:39 +0000
    X-Complaints-To: abuse@usenetprime.com
    X-Received-Bytes: 741
    Xref: nntp.eternal-september.org alt.test:1434539


    Sean


    ... TCOB1: binkd only binkd.rima.ie
    --- FMail-lnx 2.3.2.6-B20251227
    * Origin: TCOB1 A Mail Only System (2:263/1)
  • From Sean Rima@2:263/1 to Stephen Walsh on Fri Jan 30 13:24:02 2026

    Hello Stephen!

    30 Jan 26 11:30, you wrote to me:


    Send me the logfile and your config (Change any passwords to
    password).

    OK, what I have done is to disable my spoon/soupgate setup for the moment, put the data/inbound as the filebox for the pygate and changed the outbound to the inbound of my fmail setup.

    So if I am happy after a few days, maybe instead, I will work on an email gateway as there are many things I want to do

    Sean


    ... TCOB1: binkd only binkd.rima.ie
    --- FMail-lnx 2.3.2.6-B20251227
    * Origin: TCOB1 A Mail Only System (2:263/1)
  • From Stephen Walsh@3:633/280 to Tommi Koivula on Sat Jan 31 13:07:22 2026

    Hello Tommi!

    30 Jan 26 10:07, you wrote to me:

    Nope. I'm talking about the situation when I send a message from fido
    to news. It has a MSGID:
    [...]
    The original fido MSGID is saved in the nntp-message. Maybe that
    should be used as a fido MSGID if it exists?


    ### Version 1.5.7 (January 30, 2026)

    When converting NNTP to FidoNet, PyGate now checks for the X-FTN-MSGID header first. If present (indicating the
    message originated from FidoNet), it uses the original MSGID instead of generating a new one. This allows
    FidoNet duplicate detection to work correctly and prevents message loops.

    The flow is now:
    1. FidoNet -> NNTP: MSGID: 2:221/1 697c6658 -> X-FTN-MSGID: 2:221/1 697c6658
    2. NNTP -> FidoNet: X-FTN-MSGID: 2:221/1 697c6658 -> MSGID: 2:221/1 697c6658 (same!)

    Duplicate detection will now recognize it as the same message.




    Stephen


    --- GoldED+/LNX 1.1.5-b20250409
    * Origin: Dragon's Lair ---:- dragon.vk3heg.net -:--- Prt: 6800 (3:633/280)
  • From Stephen Walsh@3:633/280 to Sean Rima on Sat Jan 31 13:08:52 2026

    Hello Sean!

    30 Jan 26 13:22, you wrote to me:

    Send me the logfile and your config (Change any passwords to
    password).

    I changed the newsrc to the one I have with soupgate and spoon and it worked fine :)

    The pygate newsrc is based on the soupgate one.

    Happy to hear it's now working for you.



    Stephen


    --- GoldED+/LNX 1.1.5-b20250409
    * Origin: Dragon's Lair ---:- dragon.vk3heg.net -:--- Prt: 6800 (3:633/280)
  • From Stephen Walsh@3:633/280 to Sean Rima on Sat Jan 31 13:11:00 2026

    Hello Sean!

    30 Jan 26 13:24, you wrote to me:

    OK, what I have done is to disable my spoon/soupgate setup for the
    moment, put the data/inbound as the filebox for the pygate and changed
    the outbound to the inbound of my fmail setup.

    Yeah that's one way of doing it! Mine runs on the news server, so I needed binkd anyway, so just had raw packets
    created and placed into the binkd file box...

    So if I am happy after a few days, maybe instead, I will work on an
    email gateway as there are many things I want to do

    Are you using that feature? One of the issues with doing that is if the internet side attaches a huge file.
    Fidonet wasn't designed to handle that. Are you getting users asking for it, or is it something you want toi
    tackle yourself?



    Stephen


    --- GoldED+/LNX 1.1.5-b20250409
    * Origin: Dragon's Lair ---:- dragon.vk3heg.net -:--- Prt: 6800 (3:633/280)
  • From Tommi Koivula@2:221/1.2 to Stephen Walsh on Sat Jan 31 11:29:00 2026
    Hi Stephen.

    31 Jan 26 13:07, you wrote to me:

    ### Version 1.5.7 (January 30, 2026)

    When converting NNTP to FidoNet, PyGate now checks for the X-FTN-MSGID header
    first. If present (indicating the message originated from FidoNet), it uses the
    original MSGID instead of generating a new one. This allows FidoNet duplicate
    detection to work correctly and prevents message loops.

    The flow is now:
    1. FidoNet -> NNTP: MSGID: 2:221/1 697c6658 -> X-FTN-MSGID: 2:221/1 697c6658
    2. NNTP -> FidoNet: X-FTN-MSGID: 2:221/1 697c6658 -> MSGID: 2:221/1 697c6658
    (same!)

    Duplicate detection will now recognize it as the same message.

    Perfect! :)

    'Tommi

    ---
    * Origin: Point Two (2:221/1.2)
  • From Tommi Koivula@2:221/1.2 to Stephen Walsh on Sat Jan 31 11:30:10 2026
    Hi Stephen.

    31 Jan 26 13:11, you wrote to Sean Rima:

    So if I am happy after a few days, maybe instead, I will work on an
    email gateway as there are many things I want to do

    Are you using that feature? One of the issues with doing that is if the internet side attaches a huge file. Fidonet wasn't designed to handle that.

    I've used the email/netmail -gateway with soupgate for decades. At my mail server I just block all email that are not plaintext. Pretty easy way to block spam.

    Soupgate can convert the fido sender address to user@p2.f1.n221.z2.fidonet.fi -style address. Would be nice also have Pygate do the same. Optionally of course.

    'Tommi

    ---
    * Origin: Point Two (2:221/1.2)
  • From Tommi Koivula@2:221/1.20 to All on Sat Jan 31 12:52:14 2026
    On 29.01.2026 17.50, Stephen Walsh wrote:

    TK> If I check the saved .PKT's there are Syncronet-style MSGID's:

    TK> MSGID: 5036.fidonet_fidotest@1:135/205 2ddfd6b0
    TK> MSGID: 2022.fidonet_fidotest@1:218/601 2ddfcb0d

    There's another one that got rejected by INN:

    Failed to post message: 441 Can't parse Message-ID header field body

    ===
    MSGID: <cdp8888@2001:2061:2098:c800:c8d0:356e:d91e:e642> 5974f8dc
    REPLY: <cdp8870@localhost> 69e30de1
    PID: PyGate 1.5.8
    TID: PyGate/Linux 1.5.8
    [....]
    -+- PyGate Linux v1.5.8
    + Origin: MXO PyGate / WendzelNNTPd (2:221/1.100)
    ===

    The message was sent to my local news server, running WendzelNNTPd.

    'Tommi




    --- PyGate Linux v1.5.8
    * Origin: RBB PyGate @ inn.news.fidonet.fi (2:221/1.20)
  • From Sean Rima@2:263/1 to Stephen Walsh on Sat Jan 31 16:17:23 2026

    Hello Stephen!

    31 Jan 26 13:08, you wrote to me:


    Send me the logfile and your config (Change any passwords to
    password).

    I changed the newsrc to the one I have with soupgate and spoon
    and it worked fine :)

    The pygate newsrc is based on the soupgate one.

    Happy to hear it's now working for you.

    I also use nntp.lore.kernel.org as a read only source for Linux stuff. Creating a second config and data-dir at the moment.

    Then will start work on a python email gateway for lists that I have building up :)

    Sean


    ... TCOB1: binkd only binkd.rima.ie
    --- FMail-lnx 2.3.2.6-B20251227
    * Origin: TCOB1 A Mail Only System (2:263/1)
  • From Sean Rima@2:263/1 to Stephen Walsh on Sat Jan 31 16:19:30 2026

    Hello Stephen!

    31 Jan 26 13:11, you wrote to me:


    OK, what I have done is to disable my spoon/soupgate setup for
    the moment, put the data/inbound as the filebox for the pygate
    and changed the outbound to the inbound of my fmail setup.

    Yeah that's one way of doing it! Mine runs on the news server, so I
    needed binkd anyway, so just had raw packets created and placed into
    the binkd file box...

    Ah I was wondering about that :)

    So if I am happy after a few days, maybe instead, I will work on
    an email gateway as there are many things I want to do

    Are you using that feature? One of the issues with doing that is if
    the internet side attaches a huge file. Fidonet wasn't designed to
    handle that. Are you getting users asking for it, or is it something
    you want toi tackle yourself?

    I have several python scripts, mainly RSS to fmail's ftools post command

    Sean


    ... TCOB1: binkd only binkd.rima.ie
    --- FMail-lnx 2.3.2.6-B20251227
    * Origin: TCOB1 A Mail Only System (2:263/1)
  • From Mickey@1:229/308 to Stephen Walsh on Sat Jan 31 09:25:40 2026
    BY: Stephen Walsh (3:633/280)


    The flow is now:
    1. FidoNet -> NNTP: MSGID: 2:221/1 697c6658 -> X-FTN-MSGID: 2:221/1 697c6658
    2. NNTP -> FidoNet: X-FTN-MSGID: 2:221/1 697c6658 -> MSGID: 2:221/1
    697c6658 (same!)

    Duplicate detection will now recognize it as the same message.

    Just a short note. I'm glad you are working and improving this. A great idea for today's BBS.

    Mick Manning
    http://centralontarioremote.net/bbs


    ...Music is the Eye to your Soul

    --- WWIV 5.8.1.3688[Linux 6.12.63-21933]
    * Origin: Mick's Remote WWIV Hangout - FidoNET (1:229/308)
  • From Stephen Walsh@3:633/280 to Tommi Koivula on Sun Feb 1 13:42:46 2026

    Hello Tommi!

    31 Jan 26 12:52, you wrote to all:

    There's another one that got rejected by INN:
    Failed to post message: 441 Can't parse Message-ID header field body
    [...]
    The message was sent to my local news server, running WendzelNNTPd.


    #### IPv6 Message-ID Fix
    Fixed INN rejection of Message-IDs containing IPv6 addresses. When a FidoNet MSGID
    contains an IPv6 address (e.g., `<cdp8888@2001:2061:2098:c800:c8d0:356e:d91e:e642>`),
    the colons would cause NNTP servers to fail with "Can't parse Message-ID header field body".



    Stephen


    --- GoldED+/LNX 1.1.5-b20250409
    * Origin: Dragon's Lair ---:- dragon.vk3heg.net -:--- Prt: 6800 (3:633/280)
  • From Stephen Walsh@3:633/280 to Sean Rima on Sun Feb 1 13:53:28 2026

    Hello Sean!

    31 Jan 26 16:17, you wrote to me:

    The pygate newsrc is based on the soupgate one.
    Happy to hear it's now working for you.

    I also use nntp.lore.kernel.org as a read only source for Linux stuff. Creating a second config and data-dir at the moment.

    That is the only way to use PyGgate with two different nntp server.

    I personally don't need that (My server peers with some well connected systems), but could add it
    as a feature if you'd like?


    Stephen


    --- GoldED+/LNX 1.1.5-b20250409
    * Origin: Dragon's Lair ---:- dragon.vk3heg.net -:--- Prt: 6800 (3:633/280)
  • From Stephen Walsh@3:633/280 to Sean Rima on Sun Feb 1 14:04:02 2026

    Hello Sean!

    31 Jan 26 16:19, you wrote to me:

    OK, what I have done is to disable my spoon/soupgate setup for
    the moment, put the data/inbound as the filebox for the pygate
    and changed the outbound to the inbound of my fmail setup.

    Yeah that's one way of doing it! Mine runs on the news server, so
    I needed binkd anyway, so just had raw packets created and placed
    into the binkd file box...

    Ah I was wondering about that :)

    Yeah. Plus it means I don't have to worry about flow files etc, just have binkd send what ever is
    in there... #-) PyGate only talks to this system, so it was the simple way to do things.




    Stephen


    --- GoldED+/LNX 1.1.5-b20250409
    * Origin: Dragon's Lair ---:- dragon.vk3heg.net -:--- Prt: 6800 (3:633/280)
  • From Stephen Walsh@3:633/280 to Mickey on Sun Feb 1 14:07:02 2026

    Hello Mickey!

    31 Jan 26 09:25, you wrote to me:

    Duplicate detection will now recognize it as the same message.

    Just a short note. I'm glad you are working and improving this. A
    great idea for today's BBS.

    Oh I tried the other ways of doing things, and they all had shortcomings.

    MBSE: Does a great job at gating, but it's areafix was giving me issues. Synchronet: Required to much manual editing of files/configs.
    Soupgate: To many bits needed bolting together, no areafix and manual editing.



    Stephen


    --- GoldED+/LNX 1.1.5-b20250409
    * Origin: Dragon's Lair ---:- dragon.vk3heg.net -:--- Prt: 6800 (3:633/280)
  • From Sean Rima@2:263/1 to Stephen Walsh on Sun Feb 1 12:22:47 2026

    Hello Stephen!

    01 Feb 26 13:53, you wrote to me:


    The pygate newsrc is based on the soupgate one.
    Happy to hear it's now working for you.

    I also use nntp.lore.kernel.org as a read only source for Linux
    stuff. Creating a second config and data-dir at the moment.

    That is the only way to use PyGgate with two different nntp server.

    I personally don't need that (My server peers with some well connected systems), but could add it as a feature if you'd like?

    No need, it is working perfectly. If I can make a suggestion. in the download zip, change pygate.cfg to pygate-sample.cfg and newsrc to newsrc-sample or something. I also unzipped the zip file over my working folder :)

    Is there a way to get the list of newsgroups from the server?
    Sean


    ... TCOB1: binkd only binkd.rima.ie
    --- FMail-lnx 2.3.2.6-B20251227
    * Origin: TCOB1 A Mail Only System (2:263/1)
  • From Tommi Koivula@2:221/1.100 to All on Sun Feb 1 15:09:04 2026
    On Sun, 01 Feb 2026 14:30:29 +0200 Sean Rima wrote:

    Is there a way to get the list of newsgroups from the server?

    That would be nice indeed. Currently I'm using spoon for that. :)

    Also it would be nice to have an option to 'reset' message count in
    newsrc file. That can be done with vsoup or souper:

    ===
    Souper v1.6 - transfer POP3 mail and NNTP news to SOUP
    usage: souper [options] [mailhost userid password]
    -c n Mark every article as read except for the last n in each newsgroup
    ===

    'Tommi

    --- PyGate Linux v1.5.10
    * Origin: MXO PyGate / WendzelNNTPd (2:221/1.100)
  • From Sean Rima@2:263/1 to Tommi Koivula on Sun Feb 1 13:25:19 2026

    Hello Tommi!

    01 Feb 26 15:09, you wrote to all:

    On Sun, 01 Feb 2026 14:30:29 +0200 Sean Rima wrote:

    Is there a way to get the list of newsgroups from the server?

    That would be nice indeed. Currently I'm using spoon for that. :)

    Also it would be nice to have an option to 'reset' message count in
    newsrc file. That can be done with vsoup or souper:

    ===
    Souper v1.6 - transfer POP3 mail and NNTP news to SOUP
    usage: souper [options] [mailhost userid password]
    -c n Mark every article as read except for the last n in each
    newsgroup
    ===

    So am I but would be better to be all one app

    Sean


    ... TCOB1: binkd only binkd.rima.ie
    --- FMail-lnx 2.3.2.6-B20251227
    * Origin: TCOB1 A Mail Only System (2:263/1)
  • From Stephen Walsh@3:633/280 to Sean Rima on Mon Feb 2 11:54:54 2026

    Hello Sean!

    01 Feb 26 12:22, you wrote to me:

    I personally don't need that (My server peers with some well
    connected systems), but could add it as a feature if you'd like?

    No need, it is working perfectly. If I can make a suggestion. in the download zip, change pygate.cfg to pygate-sample.cfg and newsrc to newsrc-sample or something. I also unzipped the zip file over my
    working folder :)

    Done. Should never do that to a working system!

    Is there a way to get the list of newsgroups from the server?
    Sean

    Added to the request list..



    Stephen


    --- GoldED+/LNX 1.1.5-b20250409
    * Origin: Dragon's Lair ---:- dragon.vk3heg.net -:--- Prt: 6800 (3:633/280)