import asyncio from aiosmtpd.controller import Controller class CustomSMTPHandler: async def handle_DATA(self, server, session, envelope): print(f'Message from: {envelope.mail_from}') print(f'Message to : {envelope.rcpt_tos}') print(f'Message data:\n{envelope.content.decode("utf8", errors="replace")}') print('Message accepted for delivery') return '250 Message accepted for delivery' # Function to start the SMTP server def start_smtp_server(): handler = CustomSMTPHandler() controller = Controller(handler, hostname='0.0.0.0', port=1025) controller.start() if __name__ == "__main__": start_smtp_server() print("SMTP server running on 127.0.0.1:1025") try: asyncio.get_event_loop().run_forever() except KeyboardInterrupt: pass