def send_contact_email(message, contact_email): subject = _('Contact message from %(sender)s') % {'sender': message.name} from_email = properties.CONTACT_EMAIL if not from_email: return # add the url to the backoffice lang_link = reverse('admin:contact_contactmessage_change', args=[message.id]) # Strip language from reverse generated link m = re.match(r'(/[^/]*)(/.*$)', lang_link) try: link = m.groups()[1] except IndexError: link = lang_link ctx = ClientContext( {'message': message, 'link': link, 'site_url': tenant_url(), 'site': tenant_site()}) text_content = render_to_string('contact/contact.mail.txt', context_instance=ctx) html_content = render_to_string('contact/contact.mail.html', context_instance=ctx) msg = EmailMultiAlternatives(subject=subject, body=text_content, to=[contact_email], from_email=from_email) msg.attach_alternative(html_content, "text/html") msg.send()
def create_message(template_name=None, to=None, subject=None, cc=None, bcc=None, from_email=None, **kwargs): if hasattr(to, 'primary_language') and to.primary_language: language = to.primary_language else: language = properties.LANGUAGE_CODE with TenantLanguage(language): c = ClientContext(kwargs) text_content = get_template( '{0}.txt'.format(template_name)).render(c) html_content = get_template( '{0}.html'.format(template_name)).render(c) args = dict(subject=subject, body=text_content, to=[to.email]) if cc: args['cc'] = cc if bcc: args['bcc'] = bcc # even if it's None args['from_email'] = from_email # Calling force_unicode on the subject below in case the subject # is being translated using ugettext_lazy. msg = EmailMultiAlternatives(**args) msg.activated_language = translation.get_language() msg.attach_alternative(html_content, "text/html") return msg
def send_contact_email(message, contact_email): subject = _('Contact message from %(sender)s') % {'sender': message.name} from_email = properties.CONTACT_EMAIL if not from_email: return # add the url to the backoffice lang_link = reverse('admin:contact_contactmessage_change', args=[message.id]) # Strip language from reverse generated link m = re.match(r'(/[^/]*)(/.*$)', lang_link) try: link = m.groups()[1] except IndexError: link = lang_link ctx = ClientContext( {'message': message, 'link': link, 'site_url': tenant_url(), 'site': tenant_site()}) text_content = render_to_string('contact/contact.mail.txt', context_instance=ctx) html_content = render_to_string('contact/contact.mail.html', context_instance=ctx) msg = EmailMultiAlternatives(subject=subject, body=text_content, to=[contact_email], from_email=from_email) msg.attach_alternative(html_content, "text/html") msg.send()
def mail_project_funded_internal(project): # XXX This is most likely obsolete. Candidate for removal? context = ClientContext( {'project': project, 'link': '/go/projects/{0}'.format(project.slug), 'site': tenant_url()}) subject = "A project has been funded" text_content = get_template('project_funded_internal.mail.txt').render(context) html_content = get_template('project_funded_internal.mail.html').render(context) msg = EmailMultiAlternatives(subject=subject, body=text_content, to=['*****@*****.**']) msg.attach_alternative(html_content, "text/html") msg.send()
def send_contact_email(message, contact_email): subject = _('Contact message from %(sender)s') % {'sender': message.name} from_email = message.email # add the url to the backoffice link = reverse('admin:contact_contactmessage_change', args=[message.id]) ctx = ClientContext({'message': message, 'link': link, 'site_url': tenant_url(), 'site': tenant_site()}) text_content = render_to_string('contact/contact.mail.txt', context_instance=ctx) html_content = render_to_string('contact/contact.mail.html', context_instance=ctx) msg = EmailMultiAlternatives(subject=subject, body=text_content, to=[contact_email], from_email=from_email) msg.attach_alternative(html_content, "text/html") msg.send()
def create_message(template_name=None, to=None, subject=None, cc=None, bcc=None, from_email=None, reply_to=None, attachments=None, **kwargs): if hasattr(to, 'primary_language') and to.primary_language: language = to.primary_language else: language = properties.LANGUAGE_CODE # This is an exception to handle a Bookingcares.com language which # contains more languages than the rest of the platform if 'language' in kwargs: language = kwargs['language'] with TenantLanguage(language): ctx = ClientContext(kwargs) ctx['to'] = to # Add the recipient to the context text_content = get_template('{0}.txt'.format(template_name)).render( ctx.flatten()) html_content = get_template('{0}.html'.format(template_name)).render( ctx.flatten()) args = dict(subject=subject, body=text_content, to=[to.email]) if cc: args['cc'] = cc if bcc: args['bcc'] = bcc if reply_to: args['reply_to'] = [reply_to] # even if it's None args['from_email'] = from_email args['attachments'] = attachments # Calling force_unicode on the subject below in case the subject # is being translated using ugettext_lazy. msg = EmailMultiAlternatives(**args) msg.activated_language = translation.get_language() msg.attach_alternative(html_content, "text/html") return msg
def create_message(template_name=None, to=None, subject=None, cc=None, bcc=None, from_email=None, reply_to=None, **kwargs): if hasattr(to, 'primary_language') and to.primary_language: language = to.primary_language else: language = properties.LANGUAGE_CODE # This is an exception to handle a Bookingcares.com language which # contains more languages than the rest of the platform if 'language' in kwargs: language = kwargs['language'] with TenantLanguage(language): c = ClientContext(kwargs) text_content = get_template( '{0}.txt'.format(template_name)).render(c) html_content = get_template( '{0}.html'.format(template_name)).render(c) args = dict(subject=subject, body=text_content, to=[to.email]) if cc: args['cc'] = cc if bcc: args['bcc'] = bcc if reply_to: args['reply_to'] = [reply_to] # even if it's None args['from_email'] = from_email # Calling force_unicode on the subject below in case the subject # is being translated using ugettext_lazy. msg = EmailMultiAlternatives(**args) msg.activated_language = translation.get_language() msg.attach_alternative(html_content, "text/html") return msg