mirror of
https://github.com/chatmail/relay.git
synced 2026-05-13 17:34:38 +00:00
get delivery working
This commit is contained in:
@@ -95,7 +95,9 @@ class Config:
|
||||
self.tls_key_path = f"/var/lib/acme/live/{self.mail_domain}/privkey"
|
||||
|
||||
# deprecated option
|
||||
mbdir = params.get("mailboxes_dir", f"/home/vmail/mail/{self.mail_domain}")
|
||||
mbdir = params.get(
|
||||
"mailboxes_dir", f"/home/vmail/mail/{self.mail_domain_deliverable}"
|
||||
)
|
||||
self.mailboxes_dir = Path(mbdir.strip())
|
||||
|
||||
# old unused option (except for first migration from sqlite to maildir store)
|
||||
|
||||
@@ -108,7 +108,7 @@ class AuthDictProxy(DictProxy):
|
||||
if namespace == "shared":
|
||||
if type == "userdb":
|
||||
user = args[0]
|
||||
if user.endswith(f"@{config.mail_domain}"):
|
||||
if user.endswith(f"@{config.mail_domain_deliverable}"):
|
||||
res = self.lookup_userdb(user)
|
||||
if res:
|
||||
reply_command = "O"
|
||||
@@ -116,7 +116,7 @@ class AuthDictProxy(DictProxy):
|
||||
reply_command = "N"
|
||||
elif type == "passdb":
|
||||
user = args[1]
|
||||
if user.endswith(f"@{config.mail_domain}"):
|
||||
if user.endswith(f"@{config.mail_domain_deliverable}"):
|
||||
res = self.lookup_passdb(user, cleartext_password=args[0])
|
||||
if res:
|
||||
reply_command = "O"
|
||||
|
||||
@@ -13,6 +13,7 @@ def test_read_config_basic(example_config):
|
||||
example_config = read_config(inipath)
|
||||
assert example_config.max_user_send_per_minute == 37
|
||||
assert example_config.mail_domain == "chat.example.org"
|
||||
assert example_config.mail_domain_deliverable == "chat.example.org"
|
||||
|
||||
|
||||
def test_read_config_basic_using_defaults(tmp_path, maildomain):
|
||||
|
||||
@@ -44,12 +44,20 @@ def test_invalid_username_length(example_config):
|
||||
config.username_min_length = 6
|
||||
config.username_max_length = 10
|
||||
password = create_newemail_dict(config)["password"]
|
||||
assert not is_allowed_to_create(config, f"a1234@{config.mail_domain}", password)
|
||||
assert is_allowed_to_create(config, f"012345@{config.mail_domain}", password)
|
||||
assert is_allowed_to_create(config, f"0123456@{config.mail_domain}", password)
|
||||
assert is_allowed_to_create(config, f"0123456789@{config.mail_domain}", password)
|
||||
assert not is_allowed_to_create(
|
||||
config, f"0123456789x@{config.mail_domain}", password
|
||||
config, f"a1234@{config.mail_domain_deliverable}", password
|
||||
)
|
||||
assert is_allowed_to_create(
|
||||
config, f"012345@{config.mail_domain_deliverable}", password
|
||||
)
|
||||
assert is_allowed_to_create(
|
||||
config, f"0123456@{config.mail_domain_deliverable}", password
|
||||
)
|
||||
assert is_allowed_to_create(
|
||||
config, f"0123456789@{config.mail_domain_deliverable}", password
|
||||
)
|
||||
assert not is_allowed_to_create(
|
||||
config, f"0123456789x@{config.mail_domain_deliverable}", password
|
||||
)
|
||||
|
||||
|
||||
@@ -124,7 +132,7 @@ def test_invalid_localpart_characters(make_config):
|
||||
"""Test that is_allowed_to_create rejects localparts with invalid characters."""
|
||||
config = make_config("chat.example.org", {"username_min_length": "3"})
|
||||
password = "zequ0Aimuchoodaechik"
|
||||
domain = config.mail_domain
|
||||
domain = config.mail_domain_deliverable
|
||||
|
||||
# valid localparts
|
||||
assert is_allowed_to_create(config, f"abc123@{domain}", password)
|
||||
|
||||
@@ -56,7 +56,7 @@ def test_print_new_account(capsys, monkeypatch, maildomain, tmpdir, example_conf
|
||||
assert lines[0] == "Content-Type: application/json"
|
||||
assert not lines[1]
|
||||
dic = json.loads(lines[2])
|
||||
assert dic["email"].endswith(f"@{example_config.mail_domain}")
|
||||
assert dic["email"].endswith(f"@{example_config.mail_domain_deliverable}")
|
||||
assert len(dic["password"]) >= 10
|
||||
# default tls_cert=acme should not include dclogin_url
|
||||
assert "dclogin_url" not in dic
|
||||
|
||||
Reference in New Issue
Block a user