From 2f80dc73c9b530fea4fb1ff9eec96f62ee755e78 Mon Sep 17 00:00:00 2001 From: cliffmccarthy <16453869+cliffmccarthy@users.noreply.github.com> Date: Wed, 6 Aug 2025 07:59:23 -0500 Subject: [PATCH 1/3] feat: Remove echobot special cases --- chatmaild/src/chatmaild/lastlogin.py | 2 -- chatmaild/src/chatmaild/user.py | 10 ++++------ 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/chatmaild/src/chatmaild/lastlogin.py b/chatmaild/src/chatmaild/lastlogin.py index c9a531a1f..7164be8bb 100644 --- a/chatmaild/src/chatmaild/lastlogin.py +++ b/chatmaild/src/chatmaild/lastlogin.py @@ -13,8 +13,6 @@ def handle_set(self, addr, parts): keyname = parts[1].split("/") value = parts[2] if len(parts) > 2 else "" if keyname[0] == "shared" and keyname[1] == "last-login": - if addr.startswith("echo@"): - return True addr = keyname[2] timestamp = int(value) user = self.config.get_user(addr) diff --git a/chatmaild/src/chatmaild/user.py b/chatmaild/src/chatmaild/user.py index 934eb51e9..3a86958eb 100644 --- a/chatmaild/src/chatmaild/user.py +++ b/chatmaild/src/chatmaild/user.py @@ -19,7 +19,7 @@ def __init__(self, maildir, addr, password_path, uid, gid): @property def can_track(self): - return "@" in self.addr and not self.addr.startswith("echo@") + return "@" in self.addr def get_userdb_dict(self): """Return a non-empty dovecot 'userdb' style dict @@ -55,11 +55,9 @@ def set_password(self, enc_password): try: write_bytes_atomic(self.password_path, password) except PermissionError: - if not self.addr.startswith("echo@"): - logging.error(f"could not write password for: {self.addr}") - raise - if not self.addr.startswith("echo@"): - self.enforce_E2EE_path.touch() + logging.error(f"could not write password for: {self.addr}") + raise + self.enforce_E2EE_path.touch() def set_last_login_timestamp(self, timestamp): """Track login time with daily granularity From 444c97feb468fe8de0ebfb419d78ea39d50823bf Mon Sep 17 00:00:00 2001 From: cliffmccarthy <16453869+cliffmccarthy@users.noreply.github.com> Date: Fri, 14 Nov 2025 09:36:17 -0600 Subject: [PATCH 2/3] feat: Remove echobot user from deployment --- cmdeploy/src/cmdeploy/deployers.py | 1 - 1 file changed, 1 deletion(-) diff --git a/cmdeploy/src/cmdeploy/deployers.py b/cmdeploy/src/cmdeploy/deployers.py index 4686e4c11..84b8e598f 100644 --- a/cmdeploy/src/cmdeploy/deployers.py +++ b/cmdeploy/src/cmdeploy/deployers.py @@ -440,7 +440,6 @@ def activate(self): class ChatmailDeployer(Deployer): required_users = [ ("vmail", "vmail", None), - ("echobot", None, None), ("iroh", None, None), ] From 5f9d85c5552850a3962c24d22b0b7607e6b43776 Mon Sep 17 00:00:00 2001 From: cliffmccarthy <16453869+cliffmccarthy@users.noreply.github.com> Date: Mon, 8 Dec 2025 12:38:55 -0600 Subject: [PATCH 3/3] feat: Remove echo from passthrough recipients --- chatmaild/src/chatmaild/ini/chatmail.ini.f | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chatmaild/src/chatmaild/ini/chatmail.ini.f b/chatmaild/src/chatmaild/ini/chatmail.ini.f index 7ec3ca86e..6e2859934 100644 --- a/chatmaild/src/chatmaild/ini/chatmail.ini.f +++ b/chatmaild/src/chatmaild/ini/chatmail.ini.f @@ -43,7 +43,7 @@ # list of e-mail recipients for which to accept outbound un-encrypted mails # (space-separated, item may start with "@" to whitelist whole recipient domains) -passthrough_recipients = echo@{mail_domain} +passthrough_recipients = # path to www directory - documented here: https://chatmail.at/doc/relay/getting_started.html#custom-web-pages #www_folder = www