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 })
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 )
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 })
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 )
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 )
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 })
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 } )
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)
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 )
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)
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)
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') ] )
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') ])
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)
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) )
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} )
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)
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)