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)
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))
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)
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))
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
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)
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, [])