summaryrefslogtreecommitdiff
path: root/addons/crm/scripts/tinyerp-mailgate/tinyerp-mailgate.py
diff options
context:
space:
mode:
authorced <>2007-08-01 14:03:50 +0000
committerced <>2007-08-01 14:03:50 +0000
commitd7236046bb9a69ea28fe9f07667817a5f20cb06a (patch)
tree293fb2f2e695e4d563713ca555a839d90261c98a /addons/crm/scripts/tinyerp-mailgate/tinyerp-mailgate.py
parent37e830828abfcf8e8d4f639d137bfb9472deec15 (diff)
crm, tools: improve mailgate
- add X-TinyCRM in the header to prevent modification of the subject bzr revid: ced-3309408bfc064865cc8d8e9382723a0129240630
Diffstat (limited to 'addons/crm/scripts/tinyerp-mailgate/tinyerp-mailgate.py')
-rwxr-xr-xaddons/crm/scripts/tinyerp-mailgate/tinyerp-mailgate.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/addons/crm/scripts/tinyerp-mailgate/tinyerp-mailgate.py b/addons/crm/scripts/tinyerp-mailgate/tinyerp-mailgate.py
index 52e5bf6c001..541c8a8b4d6 100755
--- a/addons/crm/scripts/tinyerp-mailgate/tinyerp-mailgate.py
+++ b/addons/crm/scripts/tinyerp-mailgate/tinyerp-mailgate.py
@@ -18,7 +18,7 @@ email_re = re.compile(r"""
[a-z]{2,3} # TLD
)
""", re.VERBOSE)
-project_re = re.compile(r"\[([0-9]+)\]", re.UNICODE)
+case_re = re.compile(r"\[([0-9]+)\]", re.UNICODE)
command_re = re.compile("^Set-([a-z]+) *: *(.+)$", re.I + re.UNICODE)
priorities = {
@@ -225,8 +225,12 @@ class email_parser(object):
return (int(case_str), emails)
def parse(self, msg):
- case_str = project_re.search(msg.get('Subject', ''))
- (case_id, emails) = self.msg_test(msg, case_str and case_str.group(1))
+ case_str = msg.get('X-TinyCRM', '')
+ if not case_str:
+ case_str = case_re.search(msg.get('Subject', ''))
+ if case_str:
+ case_str = case_str.group(1)
+ (case_id, emails) = self.msg_test(msg, case_str)
if case_id:
if emails[0] and self.email_get(emails[0])==self.email_get(self._decode_header(msg['From'])):
self.msg_user(msg, case_id)
@@ -238,7 +242,7 @@ class email_parser(object):
if msg.get('Subject', ''):
del msg['Subject']
msg['Subject'] = '['+str(case_id)+'] '+subject
- print 'Case', case_id, 'created...'
+ msg['X-TinyCRM'] = str(case_id)
emails = self.rpc('crm.case', 'emails_get', case_id)
priority = emails[3]
@@ -249,9 +253,8 @@ class email_parser(object):
msg_mails = map(self.email_get, filter(None, mm))
emails = filter(lambda m: m and m not in msg_mails, emails)
- self.msg_send(msg, emails, priority)
try:
- pass
+ self.msg_send(msg, emails, priority)
except:
if self.email_default:
a = self._decode_header(msg['Subject'])