| Both sides previous revisionPrevious revisionNext revision | Previous revision |
| server:mail [2023/12/23 01:47] – [Configure] Add JavaScript and Failed Login Attempts sub-menus digital man | server:mail [2026/03/17 10:11] (current) – [Anti-SPAM] added signup link for spamhaus nelgin |
|---|
| === 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 ==== |
| |
| 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 == |
| |
| {{: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 |
| | |
| |
| |
| ===== 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 ==== |
| | 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'') | |
| | 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 | |
| | 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 | |
| | **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 | |
| === 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 === |
| | ''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// | A 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 | |