introduce basic config file

This commit is contained in:
holger krekel
2023-12-08 18:29:05 +01:00
parent 652b9688d3
commit 8520a9d8f2
4 changed files with 88 additions and 1 deletions

View File

@@ -4,9 +4,10 @@ build-backend = "setuptools.build_meta"
[project]
name = "chatmaild"
version = "0.1"
version = "0.2"
dependencies = [
"aiosmtpd",
"iniconfig",
]
[project.scripts]

View File

@@ -0,0 +1,26 @@
from fnmatch import fnmatch
import iniconfig
class Config:
def __init__(self, mailname, section):
self.mailname = mailname
self.privacy_postal = section.get("privacy_postal")
self.privacy_mail = section.get("privacy_mail")
self.privacy_pdo = section.get("privacy_pdo")
self.privacy_supervisor = section.get("privacy_supervisor")
self.has_privacy_policy = self.privacy_mail != None
def read_config(inipath, mailname):
ini = iniconfig.IniConfig(inipath)
privacy = None
for section in ini:
if section.name.startswith("privacy:"):
domain = section["domain"]
if fnmatch(mailname, domain):
privacy = section
break
return Config(mailname, privacy or {})