Exemple #1
0
def send_email():
    """ Validates and send an email.

    Accepts JSON or url encoded parameters.

    """
    params = request.json or request.params

    recps = {
        'to': params.get('to', None),
        'cc': params.get('cc', None),
        'bcc': params.get('bcc', None)
    }
    subject = params.get('subject', None)
    body = params.get('body', None)
    from_ = params.get('from', None)
    reply_to = params.get('reply_to', None)

    try:
        # Init and validate data structures
        recipients = build_recipients(recps)
        email = build_email(recipients, subject, body, from_, reply_to)
        # Init Manager with registed providers
        manager = ProvidersManager(
            REGISTERED_PROVIDERS,
            app().config[PROVIDERS_KEY]
        )
        sent = manager.send(email)

    except (InvalidRecipientError, InvalidEmailError) as e:
        _LOG.warning("%s", e)
        abort(400, e)

    return {"sent": sent}
Exemple #2
0
    def setUp(self):
        self.registered_providers = REGISTERED_PROVIDERS

        self.recps = build_recipients({
            'to':
            "a b <*****@*****.**>",
            'cc': ["c d <*****@*****.**>", "*****@*****.**", "           [email protected]"],
            'bcc':
            "hey <*****@*****.**"  # should pass
        })
        self.from_ = Recipient.from_string("unittest <noreply@unitest", 'from')

        complete = Email(subject="a",
                         text='hey',
                         html="<p>hey</p>",
                         replyto="*****@*****.**")
        complete.add_recipients(self.recps)
        complete.from_ = self.from_

        self.emails = [Email(), complete]
        self.key_config = {'user': '******', 'key': 'blah'}
Exemple #3
0
def send_email():
    """ Validates and send an email.

    Accepts JSON or url encoded parameters.

    """
    params = request.json or request.params

    recps = {
        'to': params.get('to'),
        'cc': params.get('cc'),
        'bcc': params.get('bcc')
    }
    subject = params.get('subject')
    text = params.get('text')
    html = params.get('html')
    from_ = params.get('from')
    reply_to = params.get('reply_to')
    route = params.get('route')

    try:
        # Init and validate data structures
        recipients = build_recipients(recps)
        email = build_email(recipients, subject, text, html, from_, reply_to)
        # Init Manager with registed providers
        try:
            providers = get_route(app().config, email, route)
            print(providers)
        except Exception as e:  # TODO change this
            _LOG.exception("Routing error")
            raise InvalidEmailError
        #
        manager = ProvidersManager(providers, app().config[PROVIDERS_KEY])
        res, provider = manager.send(email)

    except (InvalidRecipientError, InvalidEmailError) as e:
        _LOG.warning("%s", e)
        abort(400, e)
    print(res.text)
    return {"sent": bool(res), "provider": provider}
Exemple #4
0
    def setUp(self):
        self.registered_providers = REGISTERED_PROVIDERS

        self.recps = build_recipients({
            'to': "a b <*****@*****.**>",
            'cc': ["c d <*****@*****.**>", "*****@*****.**", "           [email protected]"],
            'bcc': "hey <*****@*****.**"  # should pass
        })
        self.from_ = Recipient.from_string("unittest <noreply@unitest", 'from')

        complete = Email(
            subject="a",
            text='hey',
            html="<p>hey</p>",
            replyto="*****@*****.**"
        )
        complete.add_recipients(self.recps)
        complete.from_ = self.from_

        self.emails = [
            Email(),
            complete
        ]
        self.key_config = {'user': '******', 'key': 'blah'}