def unused_send_individual_email(self): """""" if not self.user.email: # debug level because we don't want to see this message # every 10 seconds: dd.logger.debug("User %s has no email address", self.user) return # dd.logger.info("20151116 %s %s", ar.bound_action, ar.actor) # ar = ar.spawn_request(renderer=dd.plugins.bootstrap3.renderer) # sar = BaseRequest( # # user=self.user, renderer=dd.plugins.bootstrap3.renderer) # user=self.user, renderer=settings.SITE.kernel.text_renderer) # tpl = dd.plugins.notify.email_subject_template # subject = tpl.format(obj=self) if self.owner is None: subject = str(self) else: subject = pgettext("notification", "{} in {}").format(self.message_type, self.owner) subject = settings.EMAIL_SUBJECT_PREFIX + subject # template = rt.get_template('notify/body.eml') # context = dict(obj=self, E=E, rt=rt, ar=sar) # body = template.render(**context) template = rt.get_template('notify/individual.eml') context = dict(obj=self, E=E, rt=rt) body = template.render(**context) sender = settings.SERVER_EMAIL rt.send_email(subject, sender, body, [self.user.email]) self.sent = timezone.now() self.save()
def send_summary_emails(cls, mm): """Send summary emails for all pending notifications with the given mail_mode `mm`. """ qs = cls.objects.filter(sent__isnull=True) qs = qs.exclude(user__email='') qs = qs.filter(mail_mode=mm).order_by('user') if qs.count() == 0: return from lino.core.renderer import MailRenderer ar = rt.login(renderer=MailRenderer()) context = ar.get_printable_context() sender = settings.SERVER_EMAIL template = rt.get_template('notify/summary.eml') users = dict() for obj in qs: lst = users.setdefault(obj.user, []) lst.append(obj) dd.logger.debug("Send out %s summaries for %d users.", mm, len(users)) for user, messages in users.items(): with translation.override(user.language): if len(messages) == 1: subject = messages[0].subject else: subject = _("{} notifications").format(len(messages)) subject = settings.EMAIL_SUBJECT_PREFIX + subject context.update(user=user, messages=messages) body = template.render(**context) # dd.logger.debug("20170112 %s", body) rt.send_email(subject, sender, body, [user.email]) for msg in messages: msg.sent = timezone.now() msg.save()
def send_summary_emails(cls, mm): qs = cls.objects.filter(sent__isnull=True) qs = qs.exclude(user__email='') qs = qs.filter(mail_mode=mm).order_by('user') if qs.count() == 0: return from lino.core.renderer import MailRenderer ar = rt.login(renderer=MailRenderer()) context = ar.get_printable_context() sender = settings.SERVER_EMAIL template = rt.get_template('notify/summary.eml') users = dict() for obj in qs: lst = users.setdefault(obj.user, []) lst.append(obj) dd.logger.debug( "Send out %s summaries for %d users.", mm, len(users)) for user, messages in users.items(): with translation.override(user.language): if len(messages) == 1: subject = messages[0].subject else: subject = _("{} notifications").format(len(messages)) subject = settings.EMAIL_SUBJECT_PREFIX + subject context.update(user=user, messages=messages) body = template.render(**context) # dd.logger.debug("20170112 %s", body) rt.send_email(subject, sender, body, [user.email]) for msg in messages: msg.sent = timezone.now() msg.save()
def send_summary_email(user, messages): """""" if not user.email: # debug level because we don't want to see this message # every 10 seconds: dd.logger.debug("User %s has no email address", user) return # dd.logger.info("20151116 %s %s", ar.bound_action, ar.actor) # ar = ar.spawn_request(renderer=dd.plugins.bootstrap3.renderer) # sar = BaseRequest( # # user=self.user, renderer=dd.plugins.bootstrap3.renderer) # user=self.user, renderer=settings.SITE.kernel.text_renderer) # tpl = dd.plugins.notify.email_subject_template # subject = tpl.format(obj=self) subject = _("{} unseen notifications").format(len(messages)) subject = settings.EMAIL_SUBJECT_PREFIX + subject template = rt.get_template('notify/summary.eml') context = dict(user=user, E=E, rt=rt, messages=messages) body = template.render(**context) sender = settings.SERVER_EMAIL rt.send_email(subject, sender, body, [user.email]) for msg in messages: msg.sent = timezone.now() msg.save()
def send_individual_email(self): """""" if not self.user.email: # debug level because we don't want to see this message # every 10 seconds: dd.logger.debug("User %s has no email address", self.user) return # dd.logger.info("20151116 %s %s", ar.bound_action, ar.actor) # ar = ar.spawn_request(renderer=dd.plugins.bootstrap3.renderer) # sar = BaseRequest( # # user=self.user, renderer=dd.plugins.bootstrap3.renderer) # user=self.user, renderer=settings.SITE.kernel.text_renderer) # tpl = dd.plugins.notify.email_subject_template # subject = tpl.format(obj=self) if self.owner is None: subject = str(self) else: subject = pgettext("notification", "{} in {}").format( self.message_type, self.owner) subject = settings.EMAIL_SUBJECT_PREFIX + subject # template = rt.get_template('notify/body.eml') # context = dict(obj=self, E=E, rt=rt, ar=sar) # body = template.render(**context) template = rt.get_template('notify/individual.eml') context = dict(obj=self, E=E, rt=rt) body = template.render(**context) sender = settings.SERVER_EMAIL rt.send_email(subject, sender, body, [self.user.email]) self.sent = timezone.now() self.save()
def send_welcome_email(self): """""" if not self.email: # debug level because we don't want to see this message # every 10 seconds: dd.logger.debug("User %s has no email address", self) return subject = settings.EMAIL_SUBJECT_PREFIX + str(_("Welcome")) template = rt.get_template('users/welcome_email.eml') context = dict(obj=self, E=E, rt=rt) body = template.render(**context) sender = settings.SERVER_EMAIL rt.send_email(subject, sender, body, [self.email])
def send_email(self, ar): if not self.user.email: dd.logger.info("User %s has no email address", self.user) return # dd.logger.info("20151116 %s %s", ar.bound_action, ar.actor) # ar = ar.spawn_request(renderer=dd.plugins.bootstrap3.renderer) sar = BaseRequest( # user=self.user, renderer=dd.plugins.bootstrap3.renderer) user=self.user, renderer=settings.SITE.kernel.text_renderer) tpl = dd.plugins.notifier.email_subject_template subject = tpl.format(obj=self) subject = settings.EMAIL_SUBJECT_PREFIX + subject template = rt.get_template('notifier/body.eml') context = dict(obj=self, E=E, rt=rt, ar=sar) body = template.render(**context) sender = ar.get_user().email or settings.SERVER_EMAIL rt.send_email(subject, sender, body, [self.user.email])
def send_email(self, ar): if not self.user.email: dd.logger.info("User %s has no email address", self.user) return # dd.logger.info("20151116 %s %s", ar.bound_action, ar.actor) # ar = ar.spawn_request(renderer=dd.plugins.bootstrap3.renderer) sar = BaseRequest( # user=self.user, renderer=dd.plugins.bootstrap3.renderer) user=self.user, renderer=settings.SITE.kernel.text_renderer) tpl = dd.plugins.notifier.email_subject_template subject = tpl.format(obj=self) subject = settings.EMAIL_SUBJECT_PREFIX + subject template = rt.get_template('notifier/body.eml') context = dict(obj=self, E=E, rt=rt, ar=sar) body = template.render(**context) sender = ar.get_user().email or settings.SERVER_EMAIL rt.send_email( subject, sender, body, [self.user.email])
def run_from_ui(self, ar, **kw): sender = settings.SERVER_EMAIL done_for = [] assert len(ar.selected_rows) == 1 obj = ar.selected_rows[0] subject = ar.action_param_values.subject email = ar.action_param_values.email # body = ar.action_param_values.body_text # body = "<body>" + body + "</body>" email = "{} <{}>".format(obj, email) body = obj.get_welcome_email_body(ar) print(20170102, obj, email, body) # send_welcome_email(obj) rt.send_email(subject, sender, body, [email]) done_for.append(email) msg = _("Welcome mail has been sent to {}.").format( ', '.join(done_for)) ar.success(msg, alert=True)
def sendmails(self, request, subject, recs, template, **context): # logger.info("20150504 sendmails body template %s", template) context.update(request=request) body = template.render(**context) sender = request.user.email or settings.SERVER_EMAIL rt.send_email(subject, sender, body, recs)