|
a/Allura/allura/tasks/mail_tasks.py |
|
b/Allura/allura/tasks/mail_tasks.py |
|
... |
|
... |
11 |
log = logging.getLogger(__name__)
|
11 |
log = logging.getLogger(__name__)
|
12 |
|
12 |
|
13 |
smtp_client = mail_util.SMTPClient()
|
13 |
smtp_client = mail_util.SMTPClient()
|
14 |
|
14 |
|
15 |
@task
|
15 |
@task
|
16 |
def handle_message(topic, message):
|
|
|
17 |
c.app.handle_message(topic, message)
|
|
|
18 |
|
|
|
19 |
@task
|
|
|
20 |
def route_email(
|
16 |
def route_email(
|
21 |
peer, mailfrom, rcpttos, data):
|
17 |
peer, mailfrom, rcpttos, data):
|
22 |
'''Route messages according to their destination:
|
18 |
'''Route messages according to their destination:
|
23 |
|
19 |
|
24 |
<topic>@<mount_point>.<subproj2>.<subproj1>.<project>.projects.sourceforge.net
|
20 |
<topic>@<mount_point>.<subproj2>.<subproj1>.<project>.projects.sourceforge.net
|
25 |
gets send to handle_message(topic, message)
|
21 |
gets sent to c.app.handle_message(topic, message)
|
26 |
'''
|
22 |
'''
|
27 |
try:
|
23 |
try:
|
28 |
msg = mail_util.parse_message(data)
|
24 |
msg = mail_util.parse_message(data)
|
29 |
except: # pragma no cover
|
25 |
except: # pragma no cover
|
30 |
log.exception('Parse Error: (%r,%r,%r)', peer, mailfrom, rcpttos)
|
26 |
log.exception('Parse Error: (%r,%r,%r)', peer, mailfrom, rcpttos)
|
|
... |
|
... |
49 |
in_reply_to=part['in_reply_to'],
|
45 |
in_reply_to=part['in_reply_to'],
|
50 |
references=part['references'],
|
46 |
references=part['references'],
|
51 |
filename=part['filename'],
|
47 |
filename=part['filename'],
|
52 |
content_type=part['content_type'],
|
48 |
content_type=part['content_type'],
|
53 |
payload=part['payload'])
|
49 |
payload=part['payload'])
|
54 |
handle_message.post(userpart, msg)
|
50 |
c.app.handle_message(userpart, msg)
|
55 |
else:
|
51 |
else:
|
56 |
handle_message.post(userpart, msg)
|
52 |
c.app.handle_message(userpart, msg)
|
57 |
except exc.MailError, e:
|
53 |
except exc.MailError, e:
|
58 |
log.error('Error routing email to %s: %s', addr, e)
|
54 |
log.error('Error routing email to %s: %s', addr, e)
|
59 |
except:
|
55 |
except:
|
60 |
log.exception('Error routing mail to %s', addr)
|
56 |
log.exception('Error routing mail to %s', addr)
|
61 |
|
57 |
|