Changeset 221 for trunk/email2trac.py.in
- Timestamp:
- 10/10/08 14:35:48 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/email2trac.py.in
r220 r221 282 282 return False 283 283 284 285 def blacklisted_from(self):286 """287 This function wil check if the email address is in the blacklist288 """284 def email_header_acl(self, keyword, header_field, default): 285 """ 286 This function wil check if the email address is allowed or denied 287 to send mail to the ticket list 288 """ 289 289 try: 290 black_list = self.parameters['black_list'] 290 mail_addresses = self.parameters[keyword] 291 292 # Check if we have an empty string 293 # 294 if not mail_addresses: 295 return default 296 291 297 except KeyError, detail: 292 black_list = 'MAILER-DAEMON@' 293 294 black_list = string.split(black_list, ',') 295 if not black_list.count('MAILER-DAEMON@'): 296 black_list.append('MAILER-DAEMON@') 297 298 for entry in black_list: 298 if self.DEBUG > 2 : 299 print '%s not defined, all messages are allowed.' %(keyword) 300 301 return default 302 303 mail_addresses = string.split(mail_addresses, ',') 304 305 for entry in mail_addresses: 299 306 entry = entry.strip() 300 FROM_RE = re.compile(entry, re.VERBOSE|re.IGNORECASE)301 result = FROM_RE.search(self.email_addr)307 TO_RE = re.compile(entry, re.VERBOSE|re.IGNORECASE) 308 result = TO_RE.search(header_field) 302 309 if result: 303 310 return True … … 404 411 405 412 self.email_from = self.email_to_unicode(message['from']) 406 self.author, self. email_addr = email.Utils.parseaddr(self.email_from)413 self.author, self.mail_addr = email.Utils.parseaddr(self.email_from) 407 414 408 415 # Maybe for later user … … 783 790 m = email.message_from_file(fp) 784 791 if not m: 792 if self.DEBUG: 793 print "This is not a valid email message format" 785 794 return 786 795 … … 792 801 self.get_sender_info(m) 793 802 794 if self.blacklisted_from(): 795 if self.DEBUG > 1 : 796 print 'Message rejected : From: in blacklist' 797 return False 803 804 if not self.email_header_acl('white_list', self.email_addr, True): 805 if self.DEBUG > 1 : 806 print 'Message rejected : %s not in white list' %(self.email_addr) 807 return False 808 809 if self.email_header_acl('black_list', self.email_addr, False): 810 if self.DEBUG > 1 : 811 print 'Message rejected : %s in black list' %(self.email_addr) 812 return False 798 813 799 814 # If drop the message … … 960 975 961 976 if self.notify_template: 962 tn.template_name = self.notify_template; 977 if self.VERSION == 0.11: 978 from trac.web.chrome import Chrome 979 #if not new: 980 # tn.template_name += ".update" 981 tn.template = Chrome(tn.env).load_template(tn.template_name, method='text') 982 983 else: 984 tn.template_name = self.notify_template; 963 985 964 986 tn.notify(tkt, new, modtime)
Note: See TracChangeset
for help on using the changeset viewer.