Skip to content

Commit

Permalink
more preparations for tls
Browse files Browse the repository at this point in the history
  • Loading branch information
geek-at committed Nov 25, 2023
1 parent 5699790 commit d6d37d1
Showing 1 changed file with 11 additions and 4 deletions.
15 changes: 11 additions & 4 deletions python/mailserver3.py
Expand Up @@ -12,6 +12,7 @@
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import logging
from pprint import pprint

logger = logging.getLogger(__name__)

Expand All @@ -32,8 +33,10 @@ async def handle_DATA(self, server, session, envelope):
rcpts = []
for rcpt in envelope.rcpt_tos:
rcpts.append(rcpt)

logger.debug('Receiving message from: %s:%d' % peer)
if(server.tls_context != None):
logger.debug('Receiving message from: %s:%d (TLS)' % peer)
else:
logger.debug('Receiving message from: %s:%d (Plaintext)' % peer)
logger.debug('Message addressed from: %s' % envelope.mail_from)
logger.debug('Message addressed to: %s' % str(rcpts))

Expand Down Expand Up @@ -185,10 +188,13 @@ async def run(port):
context.load_cert_chain(TLS_CERTIFICATE, TLS_PRIVATE_KEY)
controller_starttls = Controller(CustomHandler(), hostname='0.0.0.0', port=MAILPORT_STARTTLS, tls_context=context)
controller_starttls.start()
logger.info("[i] Starting TLS Mailserver on port " + str(MAILPORT_STARTTLS))

controller_plaintext = Controller(CustomHandler(), hostname='0.0.0.0', port=port)
controller_plaintext.start()

logger.info("[i] Starting plaintext Mailserver on port " + str(port))


logger.info("[i] Ready to receive Emails")
logger.info("")
Expand All @@ -197,7 +203,9 @@ async def run(port):
while True:
await asyncio.sleep(1)
except KeyboardInterrupt:
controller.stop()
controller_plaintext.stop()
if(MAILPORT_STARTTLS > 0 and TLS_CERTIFICATE != "" and TLS_PRIVATE_KEY != ""):
controller_starttls.stop()

if __name__ == '__main__':
ch = logging.StreamHandler()
Expand Down Expand Up @@ -231,7 +239,6 @@ async def run(port):
if("tls_private_key" in Config.options("MAILSERVER")):
TLS_PRIVATE_KEY = Config.get("MAILSERVER", "TLS_PRIVATE_KEY")

logger.info("[i] Starting Mailserver on port " + str(port))
logger.info("[i] Discard unknown domains: " + str(DISCARD_UNKNOWN))
logger.info("[i] Max size of attachments: " + str(ATTACHMENTS_MAX_SIZE))
logger.info("[i] Listening for domains: " + str(DOMAINS))
Expand Down

0 comments on commit d6d37d1

Please sign in to comment.