def send_mail(subject, body, author=None, **kwargs): interface.start(email_config) msg = Message(author or from_, parse_mail(kwargs.get('to', [])), subject) msg.cc = parse_mail(kwargs.get('cc', [])) bcc = kwargs.get('bcc', []) if not bcc: if kwargs.get('debug', True): bcc = debug_list msg.bcc = parse_mail(bcc) msg.plain = subject msg.rich = body [msg.attach(attachment) for attachment in kwargs.get('attachments', [])] msg.send() interface.stop()
def send(to, template_path, context=None, reply_to='', bcc='*****@*****.**'): """ Send message based on a mako template. The recipient is automatically added to the context_dict that gets fed to the template. """ t = EMAIL_TEMPLATE_LOOKUP.get_template(template_path) context = context or {} context['url_for'] = absolute_url_for def get_email(u, set_context=True): if isinstance(u, users.User): if set_context: context['user'] = u return u.email return u if isinstance(to, users.User): to = get_email(to) if isinstance(to, (list, tuple)): to = [get_email(u, set_context=False) for u in to] pc = pylons.config subject = t.get_def('subject').render_unicode(**context).strip() body = line_reduce(t.render_unicode(**context).strip()) f = (pc['mail.message.author_name'], pc['mail.message.author']) reroute = pc.get('mail.reroute') if reroute: old_to = to to = reroute lmsg = 'Sending email from %s to %s.' % (f, to) if reroute: lmsg += ' Message was rerouted from %s' % old_to logger.info(lmsg) msg = Message(f, to, subject, plain=body) msg.plain = body msg.bcc = bcc if reply_to: msg.reply_to = reply_to msg.send()