Example #1
0
    def testAddressParser(self):
        msg = """\
To: "Name, Nick" <*****@*****.**>, "Foo Bar" <*****@*****.**>
CC: "Web, Jack" <*****@*****.**>
From: [email protected]
Subject: This is the subject

This is the message body."""

        # Test Address-Parser for To & CC given in messageText

        resmsg, resto, resfrom = _mungeHeaders(msg)
        self.failUnlessEqual(resto, [
            '"Name, Nick" <*****@*****.**>', 'Foo Bar <*****@*****.**>',
            '"Web, Jack" <*****@*****.**>'
        ])
        self.failUnlessEqual(resfrom, '*****@*****.**')

        # Test Address-Parser for a given mto-string

        resmsg, resto, resfrom = _mungeHeaders(
            msg,
            mto='"Public, Joe" <*****@*****.**>, Foo Bar <*****@*****.**>')

        self.failUnlessEqual(
            resto,
            ['"Public, Joe" <*****@*****.**>', 'Foo Bar <*****@*****.**>'])
        self.failUnlessEqual(resfrom, '*****@*****.**')
Example #2
0
    def testAddressParser(self):
        msg = """\
To: "Name, Nick" <*****@*****.**>, "Foo Bar" <*****@*****.**>
CC: "Web, Jack" <*****@*****.**>
From: [email protected]
Subject: This is the subject

This is the message body."""

        # Test Address-Parser for To & CC given in messageText

        resmsg, resto, resfrom = _mungeHeaders(msg)
        self.failUnlessEqual(resto, ['"Name, Nick" <*****@*****.**>',
                                  'Foo Bar <*****@*****.**>',
                                  '"Web, Jack" <*****@*****.**>'])
        self.failUnlessEqual(resfrom, '*****@*****.**')

        # Test Address-Parser for a given mto-string

        resmsg, resto, resfrom = _mungeHeaders(msg,
            mto='"Public, Joe" <*****@*****.**>, Foo Bar <*****@*****.**>')

        self.failUnlessEqual(resto, ['"Public, Joe" <*****@*****.**>',
                                  'Foo Bar <*****@*****.**>'])
        self.failUnlessEqual(resfrom, '*****@*****.**')
 def send(self, messageText, mto=None, mfrom=None, subject=None,
          encode=None, immediate=False, charset=None, msg_type=None):
     messageText, mto, mfrom = _mungeHeaders(messageText,
                                             mto, mfrom, subject,
                                             charset=charset,
                                             msg_type=msg_type)
     self.messages.append(messageText)
Example #4
0
 def send(self, messageText, mto=None, mfrom=None, subject=None,
          encode=None, immediate=False, charset=None, msg_type=None):
     messageText, mto, mfrom = _mungeHeaders(messageText,
                                             mto, mfrom, subject,
                                             charset=charset,
                                             msg_type=msg_type)
     self.messages.append(dict(msg=messageText, mto=mto))
 def sendmail(self, mailfrom, mailto, mailBody, subject = None):
     """"""
     from zope.sendmail.interfaces import IMailDelivery
     from zope.component import getUtility
     mail_host = getUtility(IMailDelivery, name='Mail')
     messageText, mto, mfrom = _mungeHeaders(mailBody, mailto, mailfrom,
                             subject, charset='utf-8', msg_type='text/html')
     mail_host.send(fromaddr=mfrom, toaddrs=mto, message=messageText)
Example #6
0
 def testNoHeaders( self ):
     msg = """This is the message body."""
     # Doesn't specify to
     self.failUnlessRaises( MailHostError, _mungeHeaders, msg, mfrom='*****@*****.**' )
     # Doesn't specify from
     self.failUnlessRaises( MailHostError, _mungeHeaders, msg, mto='*****@*****.**' )
     # Specify all
     resmsg, resto, resfrom = _mungeHeaders( msg, '*****@*****.**', '*****@*****.**', 'This is the real subject' )
     self.failUnless(resto == ['*****@*****.**'])
     self.failUnless(resfrom == '*****@*****.**' )
Example #7
0
    def testAllHeaders( self ):
        msg = """To: [email protected]
From: [email protected]
Subject: This is the subject

This is the message body."""
        # No additional info
        resmsg, resto, resfrom = _mungeHeaders( msg )
        self.failUnless(resto == ['*****@*****.**'])
        self.failUnless(resfrom == '*****@*****.**' )

        # Add duplicated info
        resmsg, resto, resfrom = _mungeHeaders( msg, '*****@*****.**', '*****@*****.**', 'This is the subject' )
        self.failUnless(resto == ['*****@*****.**'])
        self.failUnless(resfrom == '*****@*****.**' )

        # Add extra info
        resmsg, resto, resfrom = _mungeHeaders( msg, '*****@*****.**', '*****@*****.**', 'This is the real subject' )
        self.failUnless(resto == ['*****@*****.**'])
        self.failUnless(resfrom == '*****@*****.**' )
Example #8
0
 def send(self, messageText, mto=None, mfrom=None, subject=None,
          encode=None, immediate=False, charset=None, msg_type=None):
     messageText, mto, mfrom = _mungeHeaders(messageText,
                                             mto, mfrom, subject,
                                             charset=charset,
                                             msg_type=msg_type)
     print '*TestingMailDelivery sending*:'
     print 'From:', decode_header(mfrom)[0][0]
     print 'To:', ', '.join(mto)
     print 'Message follows:'
     decoded = decodeMessageAsString(messageText)
     print decoded
     self.sent.append(decoded)
Example #9
0
def sendmail(context, message, mto=None, mfrom=None, subject=None):
    """Send a fraking mail, should work with regular Zope Mailhost,
    and MaildropHost.
    """

    mh = getattr(context.get_root(), MAILHOST_ID)
    messageText, mto, mfrom = _mungeHeaders(
        message, mto, mfrom, subject, charset='utf-8')
    try:
        mh._send(mfrom, mto, messageText)
    except SMTPException as error:
        logger.error('Error sending email from %s to %s: %s' % (
                mfrom, mto, str(error)))
Example #10
0
    def testAllHeaders(self):
        msg = """To: [email protected]
From: [email protected]
Subject: This is the subject

This is the message body."""
        # No additional info
        resmsg, resto, resfrom = _mungeHeaders(msg)
        self.failUnless(resto == ['*****@*****.**'])
        self.failUnless(resfrom == '*****@*****.**')

        # Add duplicated info
        resmsg, resto, resfrom = _mungeHeaders(msg, '*****@*****.**',
                                               '*****@*****.**',
                                               'This is the subject')
        self.failUnlessEqual(resto, ['*****@*****.**'])
        self.failUnlessEqual(resfrom, '*****@*****.**')

        # Add extra info
        resmsg, resto, resfrom = _mungeHeaders(msg, '*****@*****.**',
                                               '*****@*****.**',
                                               'This is the real subject')
        self.failUnlessEqual(resto, ['*****@*****.**'])
        self.failUnlessEqual(resfrom, '*****@*****.**')
Example #11
0
def sendmail(context, message, mto=None, mfrom=None, subject=None):
    """Send a fraking mail, should work with regular Zope Mailhost,
    and MaildropHost.
    """

    mh = getattr(context.get_root(), MAILHOST_ID)
    messageText, mto, mfrom = _mungeHeaders(message,
                                            mto,
                                            mfrom,
                                            subject,
                                            charset='utf-8')
    try:
        mh._send(mfrom, mto, messageText)
    except SMTPException as error:
        logger.error('Error sending email from %s to %s: %s' %
                     (mfrom, mto, str(error)))
Example #12
0
 def testNoHeaders(self):
     msg = """This is the message body."""
     # Doesn't specify to
     self.failUnlessRaises(MailHostError,
                           _mungeHeaders,
                           msg,
                           mfrom='*****@*****.**')
     # Doesn't specify from
     self.failUnlessRaises(MailHostError,
                           _mungeHeaders,
                           msg,
                           mto='*****@*****.**')
     # Specify all
     resmsg, resto, resfrom = _mungeHeaders(msg, '*****@*****.**',
                                            '*****@*****.**',
                                            'This is the real subject')
     self.failUnlessEqual(resto, ['*****@*****.**'])
     self.failUnlessEqual(resfrom, '*****@*****.**')
Example #13
0
    def send(self,
             messageText,
             mto=None,
             mfrom=None,
             subject=None,
             encode=None,
             immediate=False,
             charset=None,
             msg_type=None):
        """send *messageText* modified by the other parameters.

        *messageText* can either be an ``email.message.Message``
        or a string.
        Note that Products.MailHost 4.10 had changes here.
        """
        msg, mto, mfrom = _mungeHeaders(messageText, mto, mfrom,
                                        subject, charset, msg_type,
                                        encode)
        self.messages.append(msg)
Example #14
0
 def send(self,
          messageText,
          mto=None,
          mfrom=None,
          subject=None,
          encode=None,
          immediate=False,
          charset=None,
          msg_type=None):
     messageText, mto, mfrom = _mungeHeaders(messageText,
                                             mto,
                                             mfrom,
                                             subject,
                                             charset=charset,
                                             msg_type=msg_type)
     print '*TestingMailDelivery sending*:'
     print 'From:', decode_header(mfrom)[0][0]
     print 'To:', ', '.join(mto)
     print 'Message follows:'
     decoded = decodeMessageAsString(messageText)
     print decoded
     self.sent.append(decoded)
Example #15
0
 def testBCCHeader( self ):
     msg = "From: [email protected]\nBcc: [email protected]\n\nMessage text"
     # Specify only the "Bcc" header.  Useful for bulk emails.
     resmsg, resto, resfrom = _mungeHeaders(msg)
     self.failUnless(resto == ['*****@*****.**'])
     self.failUnless(resfrom == '*****@*****.**' )
Example #16
0
 def testBCCHeader(self):
     msg = "From: [email protected]\nBcc: [email protected]\n\nMessage text"
     # Specify only the "Bcc" header.  Useful for bulk emails.
     resmsg, resto, resfrom = _mungeHeaders(msg)
     self.failUnlessEqual(resto, ['*****@*****.**'])
     self.failUnlessEqual(resfrom, '*****@*****.**')