Пример #1
0
def send_activation_email(self, action):
    assert action in ACTIONS, 'Unknown action: %s' % action

    (subject_template, text_template, html_template) = \
        self.newsletter.get_templates(action)

    context = get_email_context(self)

    subject = subject_template.render(context).strip()
    body = text_template.render(context)

    extra_kwargs = {}
    if html_template:
        extra_kwargs['html'] = html_template.render(context)

    send_mail(subject,
              body,
              self.email,
              from_email=self.newsletter.get_sender(),
              **extra_kwargs)

    logger.debug(
        u'Activation email sent for action "%(action)s" to %(subscriber)s '
        u'with activation code "%(action_code)s".', {
            'action_code': self.activation_code,
            'action': action,
            'subscriber': self
        })
Пример #2
0
 def send_team_invite(self, invited_by):
     secret = self.generate_invite_secret()
     url_kwargs = {
         "pk": self.member.pk,
         "secret": secret,
     }
     url = '%s%s' % (
         settings.SITE_URL,
         reverse('team-join', kwargs=url_kwargs),
     )
     message = render_to_string('team/emails/team_invite.txt',
             {'url': url,
             'name': invited_by.get_full_name(),
             'site_name': settings.SITE_NAME,
             'site_url': settings.SITE_URL
         })
     # Translators: Mail subject
     send_mail(
         str(_("Team invite from %(name)s") % {
             "name": invited_by.get_full_name()
         }),
         message,
         self.member.email,
         priority=True
     )
Пример #3
0
    def send_message(self, subscription):

        context = get_email_context(subscription, submission=self)
        extra_headers = {'List-Unsubscribe': context['unsubscribe_url']}

        subject = self.message.subject_template.render(context).strip()
        body = self.message.text_template.render(context)

        extra_kwargs = {'queue': settings.EMAIL_BULK_QUEUE}
        if self.message.html_template:
            extra_kwargs['html'] = self.message.html_template.render(context)

        try:
            logger.debug(ugettext(u'Submitting message to: %s.'), subscription)

            send_mail(subject,
                      body,
                      subscription.get_recipient(),
                      from_email=self.newsletter.get_sender(),
                      headers=extra_headers,
                      **extra_kwargs)

        except Exception as e:
            # TODO: Test coverage for this branch.
            logger.error(
                ugettext(u'Message %(subscription)s failed '
                         u'with error: %(error)s'), {
                             'subscription': subscription,
                             'error': e
                         })
Пример #4
0
 def send_email_change_mail(self, email):
     secret = self.generate_confirmation_secret(email)
     url_kwargs = {
         "user_id": self.user.pk,
         "secret": secret,
         "email": email
     }
     url = '%s%s?%s' % (
         settings.SITE_URL,
         reverse('account-change_email'),
         urlencode(url_kwargs)
     )
     message = render_to_string('account/emails/change_email.txt', {
         'url': url,
         'name': self.user.get_full_name(),
         'site_name': settings.SITE_NAME,
         'site_url': settings.SITE_URL
     })
     # Translators: Mail subject
     subject = str(_("%(site_name)s: please confirm your new email address") % {
         "site_name": settings.SITE_NAME
     })
     send_mail(
         subject,
         message,
         email
     )
Пример #5
0
    def send_update(cls, req_event_dict, user=None, email=None,
                    template=None):
        if user is None and email is None:
            return
        if template is None:
            template = 'foirequestfollower/update_follower.txt'

        count = len(req_event_dict)
        subject = ungettext_lazy(
            "Update on one followed request",
            "Update on %(count)s followed requests",
            count) % {
                'count': count
            }
        send_mail(
            subject,
            render_to_string(template,
                {
                    "req_event_dict": req_event_dict,
                    "count": count,
                    "user": user,
                    "site_name": settings.SITE_NAME
                }
            ),
            email or user.email,
            priority=False
        )
Пример #6
0
    def send_message(self, subscription):

        context = get_email_context(subscription, submission=self)

        subject = self.message.subject_template.render(context).strip()
        body = self.message.text_template.render(context)

        extra_kwargs = {'queue': settings.EMAIL_BULK_QUEUE}
        if self.message.html_template:
            extra_kwargs['html'] = self.message.html_template.render(context)

        try:
            logger.debug(ugettext(u'Submitting message to: %s.'), subscription)

            send_mail(subject,
                      body,
                      make_address(subscription.email, name=subscription.name),
                      from_email=self.newsletter.get_sender(),
                      unsubscribe_reference='{prefix}{pk}'.format(
                          prefix=REFERENCE_PREFIX, pk=subscription.id),
                      **extra_kwargs)

        except Exception as e:
            # TODO: Test coverage for this branch.
            logger.error(
                ugettext(u'Message %(subscription)s failed '
                         u'with error: %(error)s'), {
                             'subscription': subscription,
                             'error': e
                         })
Пример #7
0
def send_activation_email(self, action):
    assert action in ACTIONS, 'Unknown action: %s' % action

    (subject_template, text_template, html_template) = \
        self.newsletter.get_templates(action)

    context = get_email_context(self)

    subject = subject_template.render(context).strip()
    body = text_template.render(context)

    extra_kwargs = {}
    if html_template:
        extra_kwargs['html'] = html_template.render(context)

    send_mail(subject, body, self.email,
        from_email=self.newsletter.get_sender(),
        **extra_kwargs
    )

    logger.debug(
        u'Activation email sent for action "%(action)s" to %(subscriber)s '
        u'with activation code "%(action_code)s".', {
            'action_code': self.activation_code,
            'action': action,
            'subscriber': self
        }
    )
Пример #8
0
 def send_follow_mail(self):
     send_mail(
         _('Please confirm that you want to follow this request'),
         render_to_string(
             "foirequestfollowers/confirm_follow.txt", {
                 "request": self.request,
                 "follow_link": self.get_follow_link(),
                 "unfollow_link": self.get_unfollow_link(),
                 "site_name": settings.SITE_NAME
             }), self.email)
Пример #9
0
 def send_follow_mail(self):
     send_mail(
         _('Please confirm that you want to follow this request'),
         render_to_string("foirequestfollowers/confirm_follow.txt",
             {"request": self.request,
             "follow_link": self.get_follow_link(),
             "unfollow_link": self.get_unfollow_link(),
             "site_name": settings.SITE_NAME}),
         self.email,
         priority=True
     )
Пример #10
0
def send_mail_user(subject, body, user: User, ignore_active=False, **kwargs):
    if not ignore_active and not user.is_active:
        return
    if not user.email:
        return

    return send_mail(subject, body, user.email, bounce_check=False, **kwargs)
Пример #11
0
def send_mail_user(subject, body, user: User,
                   ignore_active=False, **kwargs):
    if not ignore_active and not user.is_active:
        return
    if not user.email:
        return

    return send_mail(subject, body, user.email, bounce_check=False, **kwargs)
Пример #12
0
    def handle(self, *args, **options):
        translation.activate(settings.LANGUAGE_CODE)
        filename = options['filename']

        pbs = PublicBody.objects.all()
        validator = PublicBodyValidator(pbs)

        with self.get_stream(filename) as stream:
            validator.write_csv(stream)

            if filename is None and not validator.is_valid:
                for _n, email in settings.MANAGERS:
                    send_mail(
                        _('Public body validation results'),
                        _('Please find attached the results of the public body validation'),
                        email,
                        attachments=[
                            ('validation_result.csv', stream.getvalue().encode('utf-8'), 'text/csv')
                        ]
                    )
Пример #13
0
    def handle(self, *args, **options):
        translation.activate(settings.LANGUAGE_CODE)
        filename = options['filename']

        pbs = PublicBody.objects.all()
        validator = PublicBodyValidator(pbs)

        with self.get_stream(filename) as stream:
            validator.write_csv(stream)

            if filename is None and not validator.is_valid:
                for _n, email in settings.MANAGERS:
                    send_mail(
                        _('Public body validation results'),
                        _('Please find attached the results of the public body validation'
                          ),
                        email,
                        attachments=[
                            ('validation_result.csv',
                             stream.getvalue().encode('utf-8'), 'text/csv')
                        ])
Пример #14
0
    def send_update(cls, req_event_dict, user=None, email=None, template=None):
        if user is None and email is None:
            return
        if template is None:
            template = 'foirequestfollower/update_follower.txt'

        count = len(req_event_dict)
        subject = ungettext_lazy("Update on one followed request",
                                 "Update on %(count)s followed requests",
                                 count) % {
                                     'count': count
                                 }
        send_mail(
            subject,
            render_to_string(
                template, {
                    "req_event_dict": req_event_dict,
                    "count": count,
                    "user": user,
                    "site_name": settings.SITE_NAME
                }), email or user.email)
Пример #15
0
    def send_message(self, mailing_context=None, email_template=None):
        assert self.sent is None

        if not self.email:
            self.delete()
            return

        context = self.get_email_context()
        if mailing_context is not None:
            context.update(mailing_context)
        if email_template is None:
            email_template = self.mailing.email_template

        email_content = email_template.get_email_content(context)

        extra_kwargs = {
            'queue': settings.EMAIL_BULK_QUEUE
        }
        if email_content.html:
            extra_kwargs['html'] = email_content.html

        unsubscribe_reference = context.get('unsubscribe_reference')

        try:
            logger.debug('Sending mailing message to: %s.', self)

            send_mail(email_content.subject, email_content.text,
                make_address(self.email, name=self.name),
                from_email=self.mailing.get_sender(),
                unsubscribe_reference=unsubscribe_reference,
                **extra_kwargs
            )
            self.sent = timezone.now()
            self.save()

        except Exception as e:
            logger.error(
                'Mailing message %s failed with error: %s' % (self, e)
            )
Пример #16
0
    def send_message(self, subscription):

        context = get_email_context(subscription, submission=self)
        extra_headers = {
            'List-Unsubscribe': context['unsubscribe_url']
        }

        subject = self.message.subject_template.render(context).strip()
        body = self.message.text_template.render(context)

        extra_kwargs = {
            'queue': settings.EMAIL_BULK_QUEUE
        }
        if self.message.html_template:
            extra_kwargs['html'] = self.message.html_template.render(context)

        try:
            logger.debug(
                ugettext(u'Submitting message to: %s.'),
                subscription
            )

            send_mail(subject, body, subscription.get_recipient(),
                from_email=self.newsletter.get_sender(),
                headers=extra_headers,
                **extra_kwargs
            )

        except Exception as e:
            # TODO: Test coverage for this branch.
            logger.error(
                ugettext(u'Message %(subscription)s failed '
                         u'with error: %(error)s'),
                {'subscription': subscription,
                 'error': e}
            )
Пример #17
0
 def send_team_invite(self, invited_by):
     secret = self.generate_invite_secret()
     url_kwargs = {
         "pk": self.member.pk,
         "secret": secret,
     }
     url = '%s%s' % (
         settings.SITE_URL,
         reverse('team-join', kwargs=url_kwargs),
     )
     message = render_to_string(
         'team/emails/team_invite.txt', {
             'url': url,
             'name': invited_by.get_full_name(),
             'site_name': settings.SITE_NAME,
             'site_url': settings.SITE_URL
         })
     # Translators: Mail subject
     send_mail(str(
         _("Team invite from %(name)s") %
         {"name": invited_by.get_full_name()}),
               message,
               self.member.email,
               priority=True)
Пример #18
0
def send_template_email(email_template, context, **kwargs):
    content = email_template.get_email_content(context)
    user_email = kwargs.pop('user_email')
    kwargs['html'] = content.html
    return send_mail(content.subject, content.text, user_email, **kwargs)