def execute(self): email = self.bus.email recipient = None headers = [h for h in self._headers if h in email.header.keys()] for header in headers: proxy = email.header[header] recipient = first_or_default([r for r in proxy if r.address == self.bus.recipient]) if not recipient is None: break if recipient is None: #raise Exception('No <{0}> address in To: header'.format(self.bus.recipient)) recipient = EmailAddress(address=self.bus.recipient) for header in headers: proxy = email.header[header] del proxy[:] if self._undisclosed: email.to_addresses.append(EmailAddress(decoded_name='undisclosed-recipients:;', address='')) email.blind_carbon_copy.append(recipient) else: email.to_addresses.append(recipient) return True
def get_html_body(self): expression = \ lambda p: \ (not p.is_multipart()) \ and p.get_filename() is None \ and p.get_content_maintype() == 'text' \ and p.get_content_subtype() == 'html' payload = first_or_default(self.find_payloads(expression)) if payload: return EmailTextContentProxy(payload) return None
def remove_address(self, address): address_obj = first_or_default([obj for obj in self if obj.address == address]) if address_obj: self.remove(address_obj)