initial commit

This commit is contained in:
Timotheus Pokorra 2025-02-21 22:44:24 +01:00 committed by mlmmj mailing lists
commit 9dc0f99cf1
6 changed files with 967 additions and 0 deletions

41
hsadmin.py Normal file
View file

@ -0,0 +1,41 @@
from hs.admin.api import API
import config
import secrets
import string
def login():
api = API(cas=dict(uri=config.hsadmin_uri,
service=config.hsadmin_service),
credentials=dict(username=config.hsadmin_username,
password=config.hsadmin_password),
backends=[config.hsadmin_backend1,
config.hsadmin_backend2])
return api
def email_exists(api, domain, localpart):
params = {'localpart': localpart, 'domain': domain}
result = api.emailaddress.search(where=params)
return len(result) > 0
def add_email(api, username, domain, localpart):
params = {
'domain': domain,
'localpart': localpart,
'target': [username],
}
try:
api.emailaddress.add(set=params)
except Exception as e:
return str(e)
return True
def remove_email(api, username, domain, localpart):
params = {
'domain': domain,
'localpart': localpart,
}
try:
api.emailaddress.delete(where=params)
except Exception as e:
return str(e)
return True