mirror of
https://github.com/chatmail/relay.git
synced 2026-06-09 21:21:09 +00:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 221f5ed10e | |||
| 4b04aae83b | |||
| 0eed92171c | |||
| a5b9a98baa | |||
| ab2d807084 | |||
| ce05b26c77 | |||
| 77ed93fb7a | |||
| 39d1ecaa03 |
@@ -9,6 +9,7 @@ name: Trigger Docker build
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
tags: ['[0-9]+.[0-9]+.[0-9]+']
|
||||
workflow_dispatch:
|
||||
|
||||
permissions: {}
|
||||
|
||||
+43
-1
@@ -1,4 +1,46 @@
|
||||
# Changelog for chatmail deployment
|
||||
# Changelog for chatmail deployment
|
||||
|
||||
## [1.11.0] - 2026-05-15
|
||||
|
||||
### Breaking Changes
|
||||
|
||||
- [**breaking**] Drop passthrough_sender and passthrough_recipients chatmail.ini options to eliminate one more source of unencrypted messages
|
||||
|
||||
### Features
|
||||
|
||||
- Use filtermail for delivery to remote MTAs
|
||||
- Expose metadata "maxsmtprecipients" value
|
||||
- Support setup without domain, with only an IPv4 address (#963)
|
||||
- *(doc/docker)* Introduce docker images in documentation
|
||||
- DKIM-sign bounce messages (mainly "user does not exist")
|
||||
- *(config)* Load default values from Config(), not chatmail.ini.f (#853)
|
||||
- Make turn_socket_path configurable, and cleanup tests and turnserver code.
|
||||
- Warn about any unused chatmail.ini parameter at the end of "cmdeploy run"
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- Make www tests work with editable instead of just plain installs
|
||||
- Use path with no leading slash for mxdeliv
|
||||
- Increase filtermail-transport concurrency limit
|
||||
- Fix #972 by increasing file descriptors for filtermail
|
||||
- *(mtail)* Correct boot ordering and deploy restart logic
|
||||
- *(cmdeploy)* Stop and disable unbound-resolvconf
|
||||
- *(nginx)* Properly redirect www to mail_domain
|
||||
- *(dns)* Query correct NS if MNAME server is hidden (#954)
|
||||
- Legacy token metadata storage used list type, but if no new setmetadata happened, the user would not be notified at all.
|
||||
- *(logging)* Log all http requests to syslog
|
||||
|
||||
### Documentation
|
||||
|
||||
- Document how to upgrade to new version (#965)
|
||||
|
||||
### Other
|
||||
|
||||
- *(deps)* Upgrade to filtermail v0.6.4
|
||||
|
||||
### Refactor
|
||||
|
||||
- Introduce automated change-tracking across deployers
|
||||
|
||||
## 1.10.0 2026-04-30
|
||||
|
||||
|
||||
@@ -19,8 +19,8 @@ dependencies = [
|
||||
"pytest-xdist",
|
||||
"execnet",
|
||||
"imap_tools",
|
||||
"deltachat-rpc-client",
|
||||
"deltachat-rpc-server",
|
||||
"deltachat-rpc-client==2.49.0",
|
||||
"deltachat-rpc-server==2.49.0",
|
||||
]
|
||||
|
||||
[project.scripts]
|
||||
|
||||
@@ -53,7 +53,8 @@ smtpd_tls_exclude_ciphers = aNULL, RC4, MD5, DES
|
||||
# See <https://www.postfix.org/FORWARD_SECRECY_README.html#server_fs>.
|
||||
tls_preempt_cipherlist = yes
|
||||
|
||||
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
|
||||
# Reject by default, override per smtpd in master.cf
|
||||
smtpd_relay_restrictions = reject
|
||||
myhostname = {{ config.postfix_myhostname }}
|
||||
alias_maps = hash:/etc/aliases
|
||||
alias_database = hash:/etc/aliases
|
||||
@@ -101,9 +102,24 @@ smtpd_peername_lookup = no
|
||||
# so instead this is handled in filtermail.
|
||||
# We use LMTP instead SMTP so we can communicate per-recipient errors back to postfix.
|
||||
default_transport = lmtp-filtermail:inet:[127.0.0.1]:{{ config.filtermail_lmtp_port_transport }}
|
||||
|
||||
# All deliveries over lmtp-filtermail are treated
|
||||
# as having the same destination [127.0.0.1],
|
||||
# so it is not possible to limit per-destination concurrency here,
|
||||
# it is a job for filtermail-transport.
|
||||
# Total number of parallel deliveries is limited
|
||||
# by "maxproc" column in /etc/postfix/master.cf for lmtp-filtermail.
|
||||
# Settings below are to prevent Postfix queue manager
|
||||
# from limiting the number of LMTP connections to filtermail-transport.
|
||||
# Read <https://www.postfix.org/TUNING_README.html#rope> and
|
||||
# <https://www.postfix.org/SCHEDULER_README.html> for the details
|
||||
# of the Postfix algorithm that we effectively disable here.
|
||||
lmtp-filtermail_initial_destination_concurrency=10000
|
||||
lmtp-filtermail_destination_concurrency_limit=10000
|
||||
|
||||
# Do not try to deliver messages for more than 2 days.
|
||||
maximal_queue_lifetime = 2d
|
||||
|
||||
{% if not config.ipv4_relay %}
|
||||
# DKIM-sign locally generated mail (bounces, DSNs).
|
||||
# These bypass smtpd, so they need explicit milter configuration.
|
||||
|
||||
@@ -17,6 +17,7 @@ smtp inet n - y - - smtpd
|
||||
-o smtpd_tls_security_level=encrypt
|
||||
-o smtpd_tls_mandatory_protocols=>=TLSv1.2
|
||||
-o smtpd_proxy_filter=127.0.0.1:{{ config.filtermail_smtp_port_incoming }}
|
||||
-o smtpd_relay_restrictions=reject_unauth_destination
|
||||
submission inet n - y - 5000 smtpd
|
||||
-o syslog_name=postfix/submission
|
||||
-o smtpd_tls_security_level=encrypt
|
||||
@@ -81,12 +82,14 @@ filter unix - n n - - lmtp
|
||||
-o syslog_name=postfix/reinject
|
||||
-o milter_macro_daemon_name=ORIGINATING
|
||||
-o cleanup_service_name=authclean
|
||||
-o smtpd_relay_restrictions=permit_mynetworks,reject
|
||||
{% if not config.ipv4_relay %} -o smtpd_milters=unix:opendkim/opendkim.sock
|
||||
{% endif %}
|
||||
|
||||
# Local SMTP server for reinjecting incoming filtered mail
|
||||
127.0.0.1:{{ config.postfix_reinject_port_incoming }} inet n - n - 100 smtpd
|
||||
-o syslog_name=postfix/reinject_incoming
|
||||
-o smtpd_relay_restrictions=reject_unauth_destination
|
||||
|
||||
# Cleanup `Received` headers for authenticated mail
|
||||
# to avoid leaking client IP.
|
||||
@@ -102,7 +105,15 @@ filter unix - n n - - lmtp
|
||||
authclean unix n - - - 0 cleanup
|
||||
-o header_checks=regexp:/etc/postfix/submission_header_cleanup
|
||||
|
||||
lmtp-filtermail unix - - y - 10000 lmtp
|
||||
# Reducing `maxproc` here may result in a head of line blocking
|
||||
# when there are many messages sent to unreachable destinations
|
||||
# at the same time.
|
||||
# LMTP clients here talk to filtermail-transport.
|
||||
# LMTP has no pipelining,
|
||||
# so while filtermail-transport tries to deliver the message,
|
||||
# possibly waiting for a long connection timeout
|
||||
# or talking to a slow server, LMTP client cannot be reused.
|
||||
lmtp-filtermail unix - - y - 500 lmtp
|
||||
-o syslog_name=postfix/lmtp-filtermail
|
||||
-o lmtp_header_checks=
|
||||
-o lmtp_tls_security_level=none
|
||||
|
||||
@@ -60,6 +60,7 @@ and run the following commands:
|
||||
::
|
||||
|
||||
git pull origin main --rebase --autostash
|
||||
scripts/initenv.sh
|
||||
scripts/cmdeploy run
|
||||
|
||||
If you don't want the latest development version,
|
||||
|
||||
Reference in New Issue
Block a user