def relatedAddresses(self): """ Implement L{IMessageData.relatedAddresses} by looking at relevant RFC2822 headers for sender and recipient addresses. """ for header in (u'from', u'sender', u'reply-to'): try: v = self.getHeader(header) except equotient.NoSuchHeader: continue email = mimeutil.EmailAddress(v, mimeEncoded=False) yield (exmess.SENDER_RELATION, email) break for header, relationship in [ (u'cc', exmess.COPY_RELATION), (u'to', exmess.RECIPIENT_RELATION), (u'bcc', exmess.BLIND_COPY_RELATION), (u'resent-to', exmess.RESENT_TO_RELATION), (u'resent-from', exmess.RESENT_FROM_RELATION)]: try: v = self.getHeader(header) except equotient.NoSuchHeader: pass else: for addressObject in mimeutil.parseEmailAddresses(v, mimeEncoded=False): yield (relationship, addressObject)
def test_ListHeader(self): emails = [] emails.append(mimeutil.EmailAddress(' =?ISO-8859-1?Q?C=E9sar______?= fu bar <*****@*****.**>')) emails.append(mimeutil.EmailAddress(' n o name @ examplE.com ')) header = mimeutil.makeEmailListHeader(emails, 'To') parsed = mimeutil.parseEmailAddresses(header.encode()) self.assertEquals(emails, parsed)
def relatedAddresses(self): """ Implement L{IMessageData.relatedAddresses} by looking at relevant RFC2822 headers for sender and recipient addresses. """ for header in (u'from', u'sender', u'reply-to'): try: v = self.getHeader(header) except equotient.NoSuchHeader: continue email = mimeutil.EmailAddress(v, mimeEncoded=False) yield (exmess.SENDER_RELATION, email) break for header, relationship in [(u'cc', exmess.COPY_RELATION), (u'to', exmess.RECIPIENT_RELATION), (u'bcc', exmess.BLIND_COPY_RELATION), (u'resent-to', exmess.RESENT_TO_RELATION), (u'resent-from', exmess.RESENT_FROM_RELATION)]: try: v = self.getHeader(header) except equotient.NoSuchHeader: pass else: for addressObject in mimeutil.parseEmailAddresses( v, mimeEncoded=False): yield (relationship, addressObject)
def test_noBCCInTo(self): """ Test that L{xquotient.mimebakery.createMessage} doesn't stick the BCC address it's passed into the "To" header """ msg = self._createBCCMessage() (addr, ) = mimeutil.parseEmailAddresses(msg.impl.getHeader(u'To')) self.assertEquals(addr.email, '*****@*****.**')
def test_noBCCInTo(self): """ Test that L{xquotient.mimebakery.createMessage} doesn't stick the BCC address it's passed into the "To" header """ msg = self._createBCCMessage() (addr,) = mimeutil.parseEmailAddresses(msg.impl.getHeader(u'To')) self.assertEquals(addr.email, '*****@*****.**')
def test_ListHeader(self): emails = [] emails.append( mimeutil.EmailAddress( ' =?ISO-8859-1?Q?C=E9sar______?= fu bar <*****@*****.**>' )) emails.append(mimeutil.EmailAddress(' n o name @ examplE.com ')) header = mimeutil.makeEmailListHeader(emails, 'To') parsed = mimeutil.parseEmailAddresses(header.encode()) self.assertEquals(emails, parsed)
def _coerceEmailAddressString(self, s): """ Turn a string representation of one or more email addresses into a list of L{mimetuil.EmailAddress} instances @param s: non mime-encoded string @type s: C{str} @return: L{mimeutil.EmailAddress} instances @rtype: sequence """ return mimeutil.parseEmailAddresses(s, mimeEncoded=False)
def getReplyAddresses(self): """ Figure out the address(es) that a reply to this message should be sent to. @rtype: sequence of L{xquotient.mimeutil.EmailAddress} """ try: recipient = self.getHeader(u'reply-to') except equotient.NoSuchHeader: recipient = dict(self.relatedAddresses())[ exmess.SENDER_RELATION].email return mimeutil.parseEmailAddresses(recipient, mimeEncoded=False)
def getReplyAddresses(self): """ Figure out the address(es) that a reply to this message should be sent to. @rtype: sequence of L{xquotient.mimeutil.EmailAddress} """ try: recipient = self.getHeader(u'reply-to') except equotient.NoSuchHeader: recipient = dict( self.relatedAddresses())[exmess.SENDER_RELATION].email return mimeutil.parseEmailAddresses(recipient, mimeEncoded=False)
def test_parseEmailAddresses(self): self.assertEquals( mimeutil.parseEmailAddresses(' one@t wo , three <four@five> '), map(mimeutil.EmailAddress, ['one@two', 'three <four@five>']))