forked from slimta/python-slimta
-
Notifications
You must be signed in to change notification settings - Fork 0
/
smtpall.py
36 lines (30 loc) · 875 Bytes
/
smtpall.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from pprint import pprint
import shelve
from slimta.edge.smtp import SmtpEdge
from slimta.queue import Queue
from slimta.queue.dict import DictStorage
from slimta.relay import RelayError
from slimta.relay.smtp.static import StaticSmtpRelay
def backoff(envelope, attempts):
if attempts <= 5:
return 5.0 * attempts
relay = StaticSmtpRelay('mx1.emailsrvr.com', 25, pool_size=2)
env_db = shelve.open('envelope.db')
meta_db = shelve.open('meta.db')
queue_storage = DictStorage(env_db, meta_db)
queue = Queue(queue_storage, relay, backoff)
edge = SmtpEdge(('127.0.0.1', 1337), queue)
edge.start()
queue.start()
try:
edge.get()
except KeyboardInterrupt:
print
finally:
for key in env_db.keys():
print 'env', key
for key in meta_db.keys():
print 'meta', key
env_db.close()
meta_db.close()
# vim:et:fdm=marker:sts=4:sw=4:ts=4