summaryrefslogtreecommitdiff
path: root/tests/smtp.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/smtp.py')
-rw-r--r--tests/smtp.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/smtp.py b/tests/smtp.py
new file mode 100644
index 0000000..fa6e16b
--- /dev/null
+++ b/tests/smtp.py
@@ -0,0 +1,27 @@
+import asyncio
+import quopri
+from aiosmtpd.controller import Controller
+
+class PrintHandler:
+ async def handle_RCPT(self, server, session, envelope, address, rcpt_options):
+ envelope.rcpt_tos.append(address)
+ return '250 OK'
+
+ async def handle_DATA(self, server, session, envelope):
+ print('Message from %s' % envelope.mail_from)
+ print('Message for %s' % envelope.rcpt_tos)
+ print('Message data:\n')
+ headers, body = envelope.content.decode('utf8').split("\r\n\r\n", maxsplit=1)
+ if "Content-Transfer-Encoding: quoted-printable" in headers:
+ body = quopri.decodestring(body).decode('utf8')
+ print(headers)
+ print()
+ print(body)
+ print()
+ print('End of message')
+ return '250 Message accepted for delivery'
+
+if __name__ == '__main__':
+ controller = Controller(PrintHandler(), hostname="localhost", port=2525)
+ controller.start()
+ input()