def __call__(self): # TODO: # - recursive functionality:add checkbox (go recursively through mail?) obj = self.event.object header = self.element.header value = self.element.value if not IEmail.providedBy(obj): return False mailobj = email.message_from_string(obj.data) if not header in mailobj.keys(): return False # The user may enter a malformed regex, in that case, the input should be interpreted as # a string try: exp = re.compile(value) except: return value in mailobj.get(header) if re.search(exp,mailobj.get(header)): return True return False
def __call__(self): obj = self.event.object operator = self.element.operator size = self.element.size * 1024 * 1024 if not IEmail.providedBy(obj): return False if operator == ">=": return len(obj.data) >= size if operator == "<=": return len(obj.data) <= size return False
def __call__(self): obj = self.event.object maintype = self.element.maintype subtype = self.element.subtype if not IEmail.providedBy(obj): return False mailobj = email.message_from_string(obj.data) for part in mailobj.walk(): if maintype and subtype: if part.get_content_maintype() == maintype and part.get_content_subtype() == subtype: return True if maintype and not subtype: if part.get_content_maintype() == maintype: return True if not maintype and subtype: if part.get_content_subtype() == subtype: return True if not maintype and not subtype: return True return False
def test_IEmail_interface(self): self.failUnless(IEmail.providedBy(self.portal.inbox.email))