def setUp(self): import os import tempfile from repoze.sendmail.queue import QueueProcessor self.dir = tempfile.mkdtemp() self.maildir_path = os.path.join(self.dir, 'Maildir') self.qp = QueueProcessor(_makeMailerStub(), self.maildir_path)
def setUp(self): from repoze.sendmail.queue import QueueProcessor self.qp = QueueProcessor() self.qp.maildir = MaildirStub('/foo/bar/baz') self.qp.mailer = MailerStub() self.qp.log = LoggerStub() self.dir = mkdtemp()
def createQueuedDelivery(): delivery = QueuedMailDelivery(queuePath) handler('registerUtility', delivery, IMailDelivery, name) mailerObject = queryUtility(IMailer, mailer) if mailerObject is None: raise ConfigurationError("Mailer %r is not defined" % mailer) if processorThread: qp = QueueProcessor() qp.mailer = mailerObject qp.queue_path = queuePath delivery.processor_thread = qp.send_messages_thread()
def mailout(args, env): registry = env['registry'] queue_path = registry.settings['mail_queue_path'] mailer = SMTPMailer( hostname=args.server, port=args.port, username=args.username, password=args.password, no_tls=args.no_tls, force_tls=args.force_tls ) qp = QueueProcessor(mailer, queue_path) qp.send_messages()
def mailout(args, env): registry = env['registry'] queue_path = registry.settings['mail_queue_path'] mailout_throttle = registry.settings.get('mailout_throttle') mailer = SMTPMailer(hostname=args.server, port=args.port, username=args.username, password=args.password, no_tls=args.no_tls, force_tls=args.force_tls) qp = QueueProcessor(mailer, queue_path, ignore_transient=True) stats = MailoutStats(registry.settings.get('mailout_stats_dir')) # Instead of calling QueueProcessor.send_messages directly, # implement a throttle if mailout_throttle: int_mailout_throttle = int(mailout_throttle) else: int_mailout_throttle = 0 counter = 0 for filename in qp.maildir: counter += 1 # If we have a throttle and we're over that limit, skip if mailout_throttle is not None and counter > int_mailout_throttle: continue if stats.mailout_stats_dir: # We're configured to do logging, so log with open(filename, 'r') as fp: parser = Parser() message = parser.parse(fp) stats.log(message) try: qp._send_message(filename) except smtplib.SMTPDataError, e: # probably an address verification error. Log and try later. log.info("Temporary error: %s" % str(e))
import logging from repoze.bfg.settings import get_settings from repoze.sendmail.delivery import QueuedMailDelivery from repoze.sendmail.mailer import SMTPMailer from repoze.sendmail.queue import QueueProcessor settings = get_settings() hostname = settings.get('mail_hostname', 'localhost') port = settings.get('mail_port', 25) username = settings.get('mail_username', None) password = settings.get('mail_password', None) no_tls = settings.get('mail_no_tls', None) force_tls = settings.get('mail_force_tls', None) mailer = SMTPMailer(hostname, port, username, password, no_tls, force_tls) queue_path = settings.get('mail_queue_path', 'maildir') queued_mail_delivery = QueuedMailDelivery(queue_path) log = logging.getLogger('eportfolio') qp = QueueProcessor(mailer, queue_path) qp.log = log def trigger_queued_delivery(): try: qp.send_messages() except Exception, e: log.error(e)