예제 #1
0
 def testInterface(self):
     from zope.sendmail.interfaces import IDirectMailDelivery
     from zope.sendmail.delivery import DirectMailDelivery
     mailer = MailerStub()
     delivery = DirectMailDelivery(mailer)
     verifyObject(IDirectMailDelivery, delivery)
     self.assertEqual(delivery.mailer, mailer)
예제 #2
0
    def send(self, message, fromaddr, toaddrs, subject=None, encode=None):
        """ Send out a mail.
            'subject' and 'encode' are unused (and kept right now
            for backward compatibility.
        """

        delivery = DirectMailDelivery(self._getMailer())
        delivery.send(fromaddr, toaddrs, message)
        LOG.debug('Sending mail from %s to %s succeeded' % (fromaddr, toaddrs))
예제 #3
0
    def createDirectDelivery():
        mailerObject = queryUtility(IMailer, mailer)
        if mailerObject is None:
            raise ConfigurationError("Mailer %r is not defined" % mailer)

        delivery = DirectMailDelivery(mailerObject)
        if permission is not None:
            delivery = _assertPermission(permission, IMailDelivery, delivery)

        handler('registerUtility', delivery, IMailDelivery, name)
예제 #4
0
파일: mailhost.py 프로젝트: bendavis78/zope
    def send(self, message, fromaddr, toaddrs, subject=None, encode=None):
        """ Send out an email.
            'subject' and 'encode' are unused (and kept right now
            for backward compatibility.
            'message' should be a properly formatted RFC-822 compliant
            email message (e.g. as produced by Python's email module.
            
        """

        delivery = DirectMailDelivery(self._getMailer())
        delivery.send(fromaddr, toaddrs, message)
        LOG.debug('Sending mail from %s to %s succeeded' % (fromaddr, toaddrs))
예제 #5
0
def delivery_for_site(site=None):
    delivery = queryUtility(IMailDelivery, 'naaya-mail-delivery')
    if delivery is not None:
        return delivery

    elif site and site.mail_server_name and site.mail_server_port:
        from zope.sendmail.delivery import DirectMailDelivery
        site_mailer = BestEffortSMTPMailer(site.mail_server_name,
                                           site.mail_server_port)
        return DirectMailDelivery(site_mailer)

    else:
        return None
예제 #6
0
    def _send(self, mfrom, mto, messageText, immediate=False):
        """ Send the message """

        if immediate:
            self._makeMailer().send(mfrom, mto, messageText)
        else:
            if self.smtp_queue:
                # Start queue processor thread, if necessary
                self._startQueueProcessorThread()
                delivery = QueuedMailDelivery(self.smtp_queue_directory)
            else:
                delivery = DirectMailDelivery(self._makeMailer())

            delivery.send(mfrom, mto, messageText)
예제 #7
0
    def testSend(self):
        from zope.sendmail.delivery import DirectMailDelivery
        mailer = MailerStub()
        delivery = DirectMailDelivery(mailer)
        fromaddr = 'Jim <*****@*****.**'
        toaddrs = ('Guido <*****@*****.**>',
                   'Steve <steve@examplecom>')
        opt_headers = ('From: Jim <*****@*****.**>\n'
                       'To: some-zope-coders:;\n'
                       'Date: Mon, 19 May 2003 10:17:36 -0400\n'
                       'Message-Id: <*****@*****.**>\n')
        message =     ('Subject: example\n'
                       '\n'
                       'This is just an example\n')

        msgid = delivery.send(fromaddr, toaddrs, opt_headers + message)
        self.assertEquals(msgid, '*****@*****.**')
        self.assertEquals(mailer.sent_messages, [])
        transaction.commit()
        self.assertEquals(mailer.sent_messages,
                          [(fromaddr, toaddrs, opt_headers + message)])

        mailer.sent_messages = []
        msgid = delivery.send(fromaddr, toaddrs, message)
        self.assert_('@' in msgid)
        self.assertEquals(mailer.sent_messages, [])
        transaction.commit()
        self.assertEquals(len(mailer.sent_messages), 1)
        self.assertEquals(mailer.sent_messages[0][0], fromaddr)
        self.assertEquals(mailer.sent_messages[0][1], toaddrs)
        self.assert_(mailer.sent_messages[0][2].endswith(message))
        new_headers = mailer.sent_messages[0][2][:-len(message)]
        self.assert_(new_headers.find('Message-Id: <%s>' % msgid) != -1)

        mailer.sent_messages = []
        msgid = delivery.send(fromaddr, toaddrs, opt_headers + message)
        self.assertEquals(mailer.sent_messages, [])
        transaction.abort()
        self.assertEquals(mailer.sent_messages, [])