SMTP_sink_server.py
· 575 B · Python
Raw
from datetime import datetime
import asyncore
from smtpd import SMTPServer
class EmlServer(SMTPServer):
no = 0
def process_message(self, peer, mailfrom, rcpttos, data):
filename = '%s-%d.eml' % (datetime.now().strftime('%Y%m%d%H%M%S'),
self.no)
f = open(filename, 'w')
f.write(data)
f.close
print '%s saved.' % filename
self.no += 1
def run():
foo = EmlServer(('localhost', 25), None)
try:
asyncore.loop()
except KeyboardInterrupt:
pass
if __name__ == '__main__':
run()
| 1 | from datetime import datetime |
| 2 | import asyncore |
| 3 | from smtpd import SMTPServer |
| 4 | |
| 5 | class EmlServer(SMTPServer): |
| 6 | no = 0 |
| 7 | def process_message(self, peer, mailfrom, rcpttos, data): |
| 8 | filename = '%s-%d.eml' % (datetime.now().strftime('%Y%m%d%H%M%S'), |
| 9 | self.no) |
| 10 | f = open(filename, 'w') |
| 11 | f.write(data) |
| 12 | f.close |
| 13 | print '%s saved.' % filename |
| 14 | self.no += 1 |
| 15 | |
| 16 | |
| 17 | def run(): |
| 18 | foo = EmlServer(('localhost', 25), None) |
| 19 | try: |
| 20 | asyncore.loop() |
| 21 | except KeyboardInterrupt: |
| 22 | pass |
| 23 | |
| 24 | |
| 25 | if __name__ == '__main__': |
| 26 | run() |
dasinbox.py
· 154 B · Python
Raw
from inbox import Inbox
inbox = Inbox()
@inbox.collate
def handle(to, sender, body):
...
# Bind directly.
inbox.serve(address='0.0.0.0', port=4467)
| 1 | from inbox import Inbox |
| 2 | |
| 3 | inbox = Inbox() |
| 4 | |
| 5 | @inbox.collate |
| 6 | def handle(to, sender, body): |
| 7 | ... |
| 8 | |
| 9 | # Bind directly. |
| 10 | inbox.serve(address='0.0.0.0', port=4467) |