filemailer-receiver/worker.py

40 lines
1.1 KiB
Python
Raw Permalink Normal View History

2022-03-30 11:04:59 +00:00
from aiosmtpd.controller import Controller as SmtpdController
from aiosmtpd.smtp import AuthResult
import asyncio
import logging
from argparse import ArgumentParser
2022-03-30 11:04:59 +00:00
from classes.smtpdhandler import SmtpdHandler
from classes.config import Config
from classes.authenticator import Authenticator
from classes.ssl import SSL
if __name__ == "__main__":
log = logging.basicConfig()
parser = ArgumentParser()
parser.add_argument("-c", "--config", help="Path to config file", default="settings.ini")
args = parser.parse_args()
2022-03-30 11:04:59 +00:00
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
config = Config(args.config)
2022-03-30 11:04:59 +00:00
authenticator = Authenticator(config)
handler = SmtpdHandler(config)
smtpd = SmtpdController(handler, hostname=config.hostname,
port=config.port, authenticator=authenticator,
ident="Kumi Systems FileMailer",
auth_require_tls=False)
smtpd.start()
try:
loop.run_forever()
finally:
loop.run_until_complete(loop.shutdown_asyncgens())
loop.close()