Synchronet v3.21e-Win32 (install) has been released (Mar-2026).

You can donate to the Synchronet project using PayPal.

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
server:mail [2023/12/23 01:47] – [Configure] Add JavaScript and Failed Login Attempts sub-menus digital manserver:mail [2026/03/17 10:11] (current) – [Anti-SPAM] added signup link for spamhaus nelgin
Line 32: Line 32:
 === Special Aliases === === Special Aliases ===
 Recipient names configured in ''[[dir:ctrl]]/[[config:alias.cfg]]'' can be used to match recipient names to specific user account numbers, aliases, external email addresses, or even sub-boards. Recipient names configured in ''[[dir:ctrl]]/[[config:alias.cfg]]'' can be used to match recipient names to specific user account numbers, aliases, external email addresses, or even sub-boards.
- 
-=== User Number === 
-Receiving by user account number is also optionally supported, not not encouraged and disabled by default. 
  
 ==== Special Prefixes ==== ==== Special Prefixes ====
Line 99: Line 96:
  
 When a DNSBL service reports an IP address as "black-listed", any additional DNSBL services/servers are not queried. When a DNSBL service reports an IP address as "black-listed", any additional DNSBL services/servers are not queried.
 +
 +If you have used zen.spamhaus.org in the past, this will no longer work. You will need to apply for a Spamhaus Data Query Service account at https://www.spamhaus.com/data-access/free-data-query-service/ where you will receive a unique key that is used to query their DNS. 
  
 == Exemptions == == Exemptions ==
Line 114: Line 113:
  
 {{:server:SBBSCTRL.mailsrvr.advanced.png?400|}} {{:server:SBBSCTRL.mailsrvr.advanced.png?400|}}
 +
 +==== Archiving ====
 +
 +The Synchronet Mail Server (v3.21+) can automatically archive messages received via SMTP as separate ''.eml'' files in sub-directories of ''[[dir:data]]/user/####/'' (where ''####'' is the recipient or relaying user number).
 +
 +To utilize the mail archive feature, the sysop must set the "Archive Requirements" mail server setting (e.g. in [[util:SCFG]]->Servers->Mail Server) to specify the [[:access:]] requirements of the user or users whose mail should be auto-archived.
 +
 +Notes:
 +  * Messages are archived after being processed by any external mail processors which may have modified the message header or body
 +  * SPAM-tagged messages received for local users are not archived
 +  * Archived messages are stored in ''.eml'' files, plain text files conforming to the RFC-822 internet message standard format
 +  * Messages received for relay by users meeting the archive requirements are be stored in their ''[[dir:data]]/user/####/smtp_relay'' directory (i.e. like an "inbox")
 +  * Messages received for delivery to local users meeting the archive requirements are stored in their ''[[dir:data]]/user/####/smtp_in'' directory (i.e. like an "outbox")
 +  * There's no limit to the number or size of messages that may be archived, so disk consumption could be a concern
 +
  
  
Line 150: Line 164:
 ===== Configure ===== ===== Configure =====
  
-The Synchronet Mail Server can be configured via [[util:SCFG]]->Servers->Mail Server:+The Synchronet Mail Server can be configured via [[util:SCFG]]:Servers->Mail Server:
  
-<file> +  ╔════════════════════════════════════════════╗ 
-══════════════════════════════════════════════════════╗ +  ║            Mail Server Settings            ║ 
-║                      Mail Server                     ║ +  ╠════════════════════════════════════════════╣ 
-══════════════════════════════════════════════════════╣ +  ║ │Enabled                       Yes         ║ 
-║ │Enabled                       Yes                   ║ +  ║ │Log Level                     Info        ║ 
-║ │Log Level                     Informational         ║ +  ║ │SMTP Interfaces               0.0.0.0, :: ║ 
-║ │SMTP Interfaces               0.0.0.0, ::           ║ +  ║ │SMTP Support                  Port 25     ║ 
-║ │SMTP Port                     25                    ║ +  ║ │Submission Support            Port 587    ║ 
-║ │Submission Support            Yes                   ║ +  ║ │Submission/TLS Support        Port 465    ║ 
-║ │Submission Port               587                   ║ +  ║ │POP3 Interfaces               0.0.0.0, :: ║ 
-║ │Submission/TLS Support        Yes                   ║ +  ║ │POP3 Support                  Port 110    ║ 
-║ │Submission/TLS Port           465                   ║ +  ║ │POP3/TLS Support              Port 995    ║ 
-║ │POP3 Support                  Yes                   ║ +  ║ │Mark Retrieved Mail as Read   Yes         ║ 
-║ │POP3 Interfaces               0.0.0.0               ║ +  ║ │Max Clients                   100         ║ 
-║ │POP3 Port                     110                   ║ +  ║ │Max Inactivity                2 minutes   ║ 
-║ │POP3/TLS Support              Yes                   ║ +  ║ │Max Concurrent Connections    Unlimited   ║ 
-║ │POP3/TLS Port                 995                   ║ +  ║ │Max Recipients Per Message    100         ║ 
-║ │Max Clients                   100                   ║ +  ║ │Max Messages Waiting          100         ║ 
-║ │Max Inactivity                30 seconds            ║ +  ║ │Max Receive Message Size      20M bytes   ║ 
-║ │Max Concurrent Connections    1                     ║ +  ║ │Limit Rate of Requests        <disabled>  ║ 
-║ │Max Recipients Per Message    100                   ║ +  ║ │Post Recipient                            ║ 
-║ │Max Messages Waiting          200                   ║ +  ║ │Default Recipient                         ║ 
-║ │Max Receive Message Size      100M bytes            ║ +  ║ │Receive By Sysop Aliases      No          ║ 
-║ │Default Recipient                                   ║ +  ║ │Notify Local Recipients       Yes         ║ 
-║ │Receive By User Number        No                    ║ +  ║ │Notify Offline Recipients     Yes         ║ 
-║ │Receive By Sysop Aliases      Yes                   ║ +  ║ │Allow Users to Relay Mail     No          ║ 
-║ │Notify Local Recipients       Yes                   ║ +  ║ │Lookup Client Hostname        Yes         ║ 
-║ │Notify Offline Recipients     No                    ║ +  ║ │Check Headers against DNSBL   No          ║ 
-║ │Allow Users to Relay Mail     Yes                   ║ +  ║ │DNS-Blacklisted Servers       Tag Mail    ║ 
-║ │Lookup Client Hostname        Yes                   ║ +  ║ │Hash DNS-Blacklisted Msgs     No          ║ 
-║ │Check Headers against DNSBL   Yes                   ║ +  ║ │Kill SPAM When Read           No          ║ 
-║ │DNS-Blacklisted Servers       Throttle and Tag Mail ║ +  ║ │Spammer IP-Filter Duration    Infinite    ║ 
-║ │Hash DNS-Blacklisted Msgs     Yes                   ║ +  ║ │SendMail Support...           Direct      ║ 
-║ │Kill SPAM When Read           No                    ║ +  ║ │Login Requirements                        ║ 
-║ │SendMail Thread...                                  ║ +  ║ │Archive Requirements                      ║ 
-║ │JavaScript Settings...                              ║ +  ║ │JavaScript Settings...                    ║ 
-║ │Failed Login Attempts...                            ║ +  ║ │Failed Login Attempts...                  ║ 
-╚══════════════════════════════════════════════════════ +  ╚════════════════════════════════════════════╝ 
-</file>+ 
 +The Synchronet Mail Server "SendMail Thread" can be configured via [[util:SCFG]]:Servers->Mail Server->SendMail Support: 
 + 
 +  ╔═══════════════════════════════════════════╗ 
 +  ║              SendMail Support             ║ 
 +  ╠═══════════════════════════════════════════╣ 
 +  ║ │Enabled                       Yes        ║ 
 +  ║ │Rescan Interval               1 hour     ║ 
 +  ║ │Connect Timeout               30 seconds ║ 
 +  ║ │Auto-exempt Recipients        Yes        ║ 
 +  ║ │Max Delivery Attempts         50         ║ 
 +  ║ │Delivery Method               Direct     ║ 
 +  ╚═══════════════════════════════════════════╝
  
-... via [[monitor:SBBSCTRL]]->Mail->Configure:+... via [[monitor:SBBSCTRL]]:Mail->Configure:
  
 {{:server:sbbsctrl.3.20.mail.config.png|}} {{:server:sbbsctrl.3.20.mail.config.png|}}
  
-... or by editing the ''[[dir:ctrl]]/[[config:sbbs.ini]]'' file.+... or by editing the ''[Mail]'' section fo the ''[[dir:ctrl]]/[[config:sbbs.ini]]'' file.
  
 ==== sbbs.ini ==== ==== sbbs.ini ====
Line 230: Line 256:
 | RelayPassword                   | Password used to authenticate with RelayServer | | RelayPassword                   | Password used to authenticate with RelayServer |
 | DNSServer             | <auto>    | IP address of DNS server used to discover mail-exchange servers for outbound mail destinations | | DNSServer             | <auto>    | IP address of DNS server used to discover mail-exchange servers for outbound mail destinations |
 +| PostTo                |           | Override the recipient of all SMTP-posted messages (on sub-boards) with this value (e.g. "All") |
 | DefaultUser                     | Default recipient of mail for unrecognized recipient names (blank = none) | | DefaultUser                     | Default recipient of mail for unrecognized recipient names (blank = none) |
 | DefaultCharset        |           | Default MIME Content-Type ''charset'' value when unspecified (e.g. ''IBM437'') | | DefaultCharset        |           | Default MIME Content-Type ''charset'' value when unspecified (e.g. ''IBM437'') |
Line 237: Line 264:
 | InboundSound          |           | WAV file to play upon incoming SMTP/SMTPS connections (Windows only) | | InboundSound          |           | WAV file to play upon incoming SMTP/SMTPS connections (Windows only) |
 | OutboundSound                   | WAV file to play upon outgoing SMTP/SMTPS connections (Windows only) | | OutboundSound                   | WAV file to play upon outgoing SMTP/SMTPS connections (Windows only) |
 +| ArchiveRequirements             | [[:Access]] Requirements for auto-archiving of non-SPAM mail messages (stored in ''.eml'' format) sent to or from select users |
 | JavaScript*           | [global]  | JavaScript-related settings for external mail processing | | JavaScript*           | [global]  | JavaScript-related settings for external mail processing |
 | LogLevel              | [global]  | Minimum severity of log messages to be displayed / stored | | LogLevel              | [global]  | Minimum severity of log messages to be displayed / stored |
Line 254: Line 282:
 | DEBUG_POP3          | Log all POP3 activity (Debug log level) | | DEBUG_POP3          | Log all POP3 activity (Debug log level) |
 | TLS_POP3            | Support incoming POP3S (POP3/TLS) connections | | TLS_POP3            | Support incoming POP3S (POP3/TLS) connections |
 +| NO_READ_POP3        | Do not mark POP3-retrieved mail messages as "Read" |
 | DEBUG_TX            | Log all transmissions (Debug log level) |  | DEBUG_TX            | Log all transmissions (Debug log level) | 
 | DEBUG_RX_HEADER     | Log headers of all received messages (Debug log level)| | DEBUG_RX_HEADER     | Log headers of all received messages (Debug log level)|
 | DEBUG_RX_BODY       | Log body text of all received messages (Debug log level)| | DEBUG_RX_BODY       | Log body text of all received messages (Debug log level)|
 | DEBUG_RX_RSP        | Log all received responses (Debug log level) | | DEBUG_RX_RSP        | Log all received responses (Debug log level) |
-| ALLOW_RX_BY_NUMBER  | Allow email to be received by user number in addition to name/alias (not recommended) | 
 | ALLOW_SYSOP_ALIASES | Allow email to received for various administrative aliases (e.g. "sysop", "postmaster") to be delivered to the sysop | | ALLOW_SYSOP_ALIASES | Allow email to received for various administrative aliases (e.g. "sysop", "postmaster") to be delivered to the sysop |
 | NO_NOTIFY           | Do not send telegrams to users notifying them of newly received email | | NO_NOTIFY           | Do not send telegrams to users notifying them of newly received email |
Line 292: Line 320:
 | **message_text**       | ''SBBS_SMTP.*.msg'' | [[https://www.rfc-editor.org/rfc/rfc5322|RFC-822]]   | Complete message header and body as received via SMTP | | **message_text**       | ''SBBS_SMTP.*.msg'' | [[https://www.rfc-editor.org/rfc/rfc5322|RFC-822]]   | Complete message header and body as received via SMTP |
 | **new_message_text**   | ''SBBS_SMTP.*.new'' | [[https://www.rfc-editor.org/rfc/rfc5322|RFC-822]]   | New (replacement) message header and body (optional) | | **new_message_text**   | ''SBBS_SMTP.*.new'' | [[https://www.rfc-editor.org/rfc/rfc5322|RFC-822]]   | New (replacement) message header and body (optional) |
-| **recipient_list**     | ''SBSB_SMTP.*.lst'' | ''[[config:ini_files|.ini]]'' |List of all SMTP recipients for this message (see below for details) |+| **recipient_list**     | ''SBBS_SMTP.*.lst'' | ''[[config:ini_files|.ini]]'' |List of all SMTP recipients for this message (see below for details) |
 | **processing_error**   | ''SBBS_SMTP.*.err'' | US-ASCII | File that if created will reject this message with an SMTP error  | | **processing_error**   | ''SBBS_SMTP.*.err'' | US-ASCII | File that if created will reject this message with an SMTP error  |
 | **log_text**           | ''SBBS_SMTP.*.log'' | US-ASCII | If created will include debug output from the external mail processor to be logged | | **log_text**           | ''SBBS_SMTP.*.log'' | US-ASCII | If created will include debug output from the external mail processor to be logged |
Line 300: Line 328:
 === Message Text === === Message Text ===
  
-An external mail processor may either modify the **message_text** file in-place or create a **new_message_text** will be used in its place.+An external mail processor may either modify the **message_text** file in-place or create a **new_message_text** file that will be used in its place.
  
 === Recipient List === === Recipient List ===
Line 353: Line 381:
 | ''Native''             | ''false''    | The mail process is a native (not JavaScript) program | | ''Native''             | ''false''    | The mail process is a native (not JavaScript) program |
 | ''IgnoreOnError''      | ''false''    | If there's an error reported, ignore it | | ''IgnoreOnError''      | ''false''    | If there's an error reported, ignore it |
-| ''To''                 | //none//     A comma-separate list of possible recipient matches (name or name@address) | +| ''To''                 | //none//     Comma-separate list of possible recipient matches (name or name@address, filter wildcards and ''!'' logic negation supported) | 
-| ''From''               | //none//     required sender name |+| ''From''               | //none//     Comma-separate list of required sender names (filter wildcards and ''!'' logic negation supported) |
 | ''AccessRequirements'' | //none//     | Optional access requirements for the processor to run | | ''AccessRequirements'' | //none//     | Optional access requirements for the processor to run |
 | ''ProcessSPAM'''       | ''true''     | Set to ''false'' to not process SPAM-tagged messages | | ''ProcessSPAM'''       | ''true''     | Set to ''false'' to not process SPAM-tagged messages |