Example #1
0
    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)
Example #2
0
 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, '*****@*****.**')
Example #5
0
 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)
Example #7
0
    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)
Example #8
0
    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)
Example #10
0
 def test_parseEmailAddresses(self):
     self.assertEquals(
         mimeutil.parseEmailAddresses('  one@t  wo , three <four@five>  '),
         map(mimeutil.EmailAddress, ['one@two', 'three <four@five>']))
 def test_parseEmailAddresses(self):
     self.assertEquals(
         mimeutil.parseEmailAddresses('  one@t  wo , three <four@five>  '),
         map(mimeutil.EmailAddress, ['one@two', 'three <four@five>']))