added optimised OS codes
This commit is contained in:
parent
c318712180
commit
0fc0033265
4 changed files with 142 additions and 0 deletions
33
CNP/Wireshark/SMTP/smtp-server.py
Normal file
33
CNP/Wireshark/SMTP/smtp-server.py
Normal file
|
@ -0,0 +1,33 @@
|
|||
import asyncio
|
||||
import uvloop
|
||||
from aiosmtpd.controller import Controller
|
||||
|
||||
# handler that just prints the message content
|
||||
class PrintHandler:
|
||||
async def handle_DATA(self, server, session, envelope):
|
||||
print("Message from:", envelope.mail_from)
|
||||
print("Recipients:", envelope.rcpt_tos)
|
||||
print("Message data:")
|
||||
print(envelope.content.decode('utf8', errors='replace'))
|
||||
print("End of message")
|
||||
# Respond with a success code
|
||||
return '250 Message accepted for delivery'
|
||||
|
||||
# uvloop for better performance
|
||||
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
|
||||
|
||||
def run_server():
|
||||
# SMTP server controller, binding to localhost on port 25
|
||||
controller = Controller(PrintHandler(), hostname='127.0.0.1', port=25)
|
||||
controller.start()
|
||||
print("SMTP server running on port 25. Press Ctrl+C to stop.")
|
||||
try:
|
||||
# Run forever
|
||||
asyncio.get_event_loop().run_forever()
|
||||
except KeyboardInterrupt:
|
||||
pass
|
||||
finally:
|
||||
controller.stop()
|
||||
|
||||
if __name__ == '__main__':
|
||||
run_server()
|
Loading…
Add table
Add a link
Reference in a new issue