• src/sbbs3/mailsrvr.c

    From Rob Swindell@VERT to Git commit to sbbs/master on Fri Nov 20 13:57:28 2020
    https://gitlab.synchro.net/sbbs/sbbs/-/commit/d6ec78eb57aad4118cd67879
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    MS Outlook can place names of to/from users in single-quotes

    Parse single-quoted "name" portion of email-addr header fields. I don't think this is going to fully solve the issue with FTN netmail gated to SMTP and replied via Outlook, but it's a start. Try that Nelgin.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to sbbs/master on Sat Nov 21 15:00:52 2020
    https://gitlab.synchro.net/sbbs/sbbs/-/commit/24021e05aa64a7c4c84c787a
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    The Received/trace header should contain the forward-path for "for"

    instead of the potentially-alias'd delivery address. The angle-brackets
    (now included) appear to be standards-compliant.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to sbbs/master on Sat Nov 21 15:44:43 2020
    https://gitlab.synchro.net/sbbs/sbbs/-/commit/22faceeef77fe05b98d707f9
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    Better FTN netmail gating support

    Revert the previous change to the mailsrvr (don't try to parse the MS Outlook singled-quoted names in to/from header fields).

    Instead, use the new matchusername() to perform a liberal name match against the name portion of the destination email address and if it matches, go ahead and use the quoted-name field. Otherwise, use the name portion of the destination address as the TO field for the FTN netmail message.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Tue Dec 29 23:10:06 2020
    https://gitlab.synchro.net/main/sbbs/-/commit/b5d19603092a4f4c978e7313
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    Connection and logon linked lists need re-init for every recycle

    Each list mutex is destroyed in the call to listFree() in cleanup(). Without a call to listInit(), the mutex is not recreated and thus the lists are no longer mutex-protected after a recycle. No negative consequences were observed from this issue, but a potential issue it is (was).

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Fri Jan 22 18:22:42 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/dd121bcf7f0a690659ba5858
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    Fix bug introduced in c90ba307 - line endings stripped from rx'd mail

    An unrelated optimization (elimination of an unnecessary use of fprintf) resulted in a new bug that combined all lines from SMTP-received mail messages into a single long line, thus breaking all decoding ability of multi-part MIME messages (where blank lines are significant).

    Went ahead and replaced some other unnecessary uses of fprintf(), replaces with fputs() while at it.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Fri Jan 22 18:30:28 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/acede36f01fcda7c4384c776
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    Don't support yields per x lines on SMTP receive

    Consume the SMTP lines as fast as possible since the sender may be on the
    local network (or even local/loopback interface!) and could get way ahead and timeout otherwise, resulting in the "premature evacuation" error (and dumping of the received message) on the receive side. This resolves an observed issue with sending large attachments to the mail server at very high rates and the sending client timing and disconnecting waiting for a response from the server (which was throttling the receive using YIELD).

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Dream Master@VERT/CIAD to Rob Swindell on Fri Jan 22 22:55:42 2021
    Re: src/sbbs3/mailsrvr.c
    By: Rob Swindell to Git commit to main/sbbs/master on Fri Jan 22 2021 06:22 pm

    An unrelated optimization (elimination of an unnecessary use of fprintf) resulted in a new bug that combined all lines from SMTP-received mail messages into a single long line, thus breaking all decoding ability of multi-part MIME messages (where blank lines are significant).

    Well, that makes perfectly good sense now. I got a couple messages this morning and they were one really long line. Thank you for fixing this. I'll update tonight.

    Brian Klauss <-> Dream Master
    Caught in a Dream | caughtinadream.com a Synchronet BBS

    ---
    þ Synchronet þ Caught in a Dream - caughtinadream.com
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sat Jan 23 01:18:32 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/84009d35bf2f1295a0407699
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    Close the mime part even when error opening file

    If there was an error opening a file for attachment, the MIME part would be left unterminated.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Thu Feb 4 21:15:16 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/93208aa960574b21dd2c5ceb
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    Support quoted filenames in message subjects

    "Old style" (e.g. FTN netmail) attachments put the filename(s) in the message subject. Supported quoted-filenames in the message subject (i.e. to support filenames with spaces in them) in addition to the traditional space-delimited filenames. Mixing quoted and space-delimited filenames (for multiple attached files) in a single message subject is supported.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sun Feb 14 23:17:15 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/8c28acaba05ac4cb96d245e4
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    Fix exception (crash) when sending file attachments

    The new subject line parsing (with quoted-filename support) had a NULL-pointer deref built-in.

    Also fixed a few Coverity-reported issues.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Thu Feb 18 23:00:43 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/27079b332cf5f21ef40fe1da
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    Recognize DNB blacklist exempted email addresses in From fields

    Previously, any DNS blacklist-exempt email addresses (in ctrl/dnsbl_exempt.cfg) had to be used in the mail-envelope (the "MAIL FROM:" address) - that doesn't work for all senders that use re-mailers or whatever where you end-up with some *bounce* address as the envelope-sender.

    So now, clear the DNSBL results when the From header field is parsed and the sender was in fact an exempt sender. Note: the Subject line will still contain the SPAM tag if the subject was parsed first (came earlier in the message header). May need to address this limitation in the future if it turns out to be a problem (!).

    Lowercase the [smtp|smtps]spy.txt log file.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Fri Feb 19 12:52:15 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/e9329f6cdac406bf079f4347
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    Correct the parse_mail_address() argument order

    Issue introduced in previous commit to this file. The name arg(s) comes before the address arg(s).

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sat Mar 6 13:31:51 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/427e1cb4f8a502955459b0f9
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    Don't send default MIME Content-type for msgs with attachments

    The file attachments, when MIME-encoded, already include a MIME Content-type header field, so don't send another. This should fix issue #233.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sat Apr 24 00:28:03 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/c21d535dc7b127e029c0203a
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    Fix observed crashes at end of pop3_thread() and smtp_thread()

    "startup" was being deref'd after the caller free'd it because these thread functions were calling thread_down() before calling mail_close_socket(), which deref's startup which was subject to a race condition.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sat Jul 31 13:00:34 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/02448be248a5393ec95d4eaa
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    When logging sender address forgeries, log the address being forged

    Helpful for debugging issues with this forgery detection logic (if there are any).

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Sat Jul 31 13:00:34 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/56bc209648a1a198b6973384
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    Don't allow unauthenticated DNS-blacklisted clients to post on subs

    Eliminate some of the infrequent SPAM posts to the SYNCPROG conference. Maybe make this behavior configurable?

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Tue Nov 16 18:20:55 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/3c55d333a2103630ec874457
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    Include twit-listed sender name in quotes in log message

    Since mail server log messages have their white-space condensed, it was not obvious why some sender's name would match a twitlist.cfg line that filters names beginning with a space: "\ *" because the initial space of the sender's name was condensed/combined with space before it in the log message.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell@VERT to Git commit to main/sbbs/master on Thu Dec 30 14:31:31 2021
    https://gitlab.synchro.net/main/sbbs/-/commit/82da48b3887373503a3ee17c
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    If SMTP-transmit-relay is enabled by no relay server, disable

    log an error message and disable the transmit-relay in this detected-misconfiguration case.

    Fixes issue #315 reported by Nelgin.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Sat Sep 28 01:22:04 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/5564eb67e84e55e8a6dcbb0e
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    MIME-encode words that contain non-ASCII values in text header fields

    (e.g. to, from, subject) ... when transmitting to other hosts (e.g. POP3 clients or other SMTP hosts).

    For messages that contain CP437 or UTF-8 chars in these fields and were *not* imported into the BBS via SMTP or POP3, these header fields would be transmitted to other hosts with the raw CP437 or UTF-8 chars, thus violating POP3 and SMTP protocols and likely resulting in garbage displayed in message readers.

    The fix is to encode (using MIME "encoded words", per RFC 2407) where necessary.

    Since moderm mail clients (e.g. Thunderbird) don't see to support CP437
    charset in MIME encoded header fields, always translate to UTF-8 first.

    We probably should be translating message body text to UTF-8 as well, for maximum compatibilty with modern mail readers, but this commit doesn't address body text issues with CP437-encoded content. That'll come later.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Sun Nov 3 03:21:51 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/42e9eb8bf7c0d7f338b46d1c
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    Allow email.can to contain email sender/recipient *names* as well as addresses

    Allow filtering/blocking email based on the name portion of email header fields.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Mon Nov 11 18:49:51 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/e6d8053f3457d19d0e456ddb
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    Report bigger "size of message" in POP3 LIST response

    For messages that have no body, we'd report 0. But RFC 1939 says this value
    is supposed to be "the exact size of the message in octets" <sigh>. This
    would include header fields, so while we can't know the exact RFC822 size, adding the msg's hdr.length to these values gives size > 0 for messages
    with no body text and this enables the Apple iPhone Mail app to download
    the message (fixing issue #822).

    Part two of this fix is to provide a blank line of message text when there
    is none. This changes the message displayed in the iPhone Mail app from:

    "This message cannot be displayed because of the way it is formatted.
    Ask the sender to send it again using a different format or email program.

    text/plain"

    to (the much nicer):
    "This message has no content".

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Mon Nov 11 18:56:30 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/bb3485a9c4e2c36a07aaf512
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    Include the size of the message headers in the POP3 STAT response too

    I suppose if we only had messages with no body text, this value could be 0
    (not accounting for any headers) and thus throw a client off.

    So consider this as part of the fix for issue #822.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Tue Dec 10 16:27:55 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/d8cfb5796705016a316aa670
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    Add/use errprintf() to reduce severity of repeated error messages

    Part of solution for issue #619 (for the mail server)

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Tue Dec 24 03:52:05 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/496ee36a1466613b1df876df
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    Log the text.dat string for the reason an SMTP posted message was denied

    Include a little more detail in 550 responses sent to clients too

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Thu Jan 9 17:56:28 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/2be1b6292192878b2cb58148
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    Abort POP3 LIST/UIDL loops upon socket-send failure

    Log a debug-level message after loading messages upon POP3 login.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Tue Feb 4 19:16:47 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/92bc95d205a5d44aa56c9278
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    Fix bug that broken mail received header RBL check

    9 years ago in commit dbbfabf1b133b4116d69d4a13c38acfe1607a500

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Tue Feb 4 21:25:43 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/3b7d4567e7a96b759e51a4fa
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    Don't MSVC warning suppression

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Sat Feb 22 19:46:07 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/2f83c0537c4fa8ed5293f9ad
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    Use inet_addrtop to convert socket addresses to strings to handle endianness

    Socket addresses are stored in network byte order (big endian) and this sprintf() logic here assumed little endian.

    This was a regression introduced in either commit 29b93c32 or
    commit db8bb221 (in the past 2 weeks) when we stopped using (some)
    of the deprecated IP address/resolution functions and fixed the socket address storage to always be in network byte order (as is the norm).

    This should fix the issue recently reported in IRC by BrokenMind.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Sat Feb 22 19:53:19 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/fd8f94fdadcbaaf68406888c
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    Fix previous commit: startup.outgoing4 is not a union xp_sockaddr *

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Sat Feb 22 20:32:13 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/58612f3f4edf878793d920c1
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    Don't use deprecated function gethostbyname() in rblchk()

    Eliminated one more use of inet_ntoa() here while at it.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sat Feb 22 20:36:26 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/4f75c8149f4b16e8f7c82f4c
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    Fix use of inet_ntop() in rblchk()

    Aren't void pointers fun!?!

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sat Feb 22 21:56:17 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/fd4ccdbd522c0831d0e15eef
    Modified Files:
    src/sbbs3/mailsrvr.c
    Log Message:
    inet_ntoa() -> inet_ntop() conversion

    inet_ntoa() is deprecated

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net