예제 #1
0
 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)
예제 #2
0
 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()
예제 #3
0
    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()
예제 #4
0
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()
예제 #5
0
파일: mailout.py 프로젝트: iotest3/new
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))
예제 #6
0
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)