def compose_and_send_activation_email(user, profile, user_registration=None): """ Construct all the required params and send the activation email through celery task Arguments: user: current logged-in user profile: profile object of the current logged-in user user_registration: registration of the current logged-in user """ dest_addr = user.email if user_registration is None: user_registration = Registration.objects.get(user=user) context = generate_activation_email_context(user, user_registration) subject = render_to_string('emails/activation_email_subject.txt', context) # Email subject *must not* contain newlines subject = ''.join(subject.splitlines()) message_for_activation = render_to_string('emails/activation_email.txt', context) from_address = configuration_helpers.get_value('email_from_address', settings.DEFAULT_FROM_EMAIL) from_address = configuration_helpers.get_value( 'ACTIVATION_EMAIL_FROM_ADDRESS', from_address) if settings.FEATURES.get('REROUTE_ACTIVATION_EMAIL'): dest_addr = settings.FEATURES['REROUTE_ACTIVATION_EMAIL'] message_for_activation = ("Activation for %s (%s): %s\n" % (user, user.email, profile.name) + '-' * 80 + '\n\n' + message_for_activation) send_activation_email.delay(subject, message_for_activation, from_address, dest_addr)
def compose_activation_email(root_url, user, user_registration=None, route_enabled=False, profile_name=''): """ Construct all the required params for the activation email through celery task """ if user_registration is None: user_registration = Registration.objects.get(user=user) message_context = generate_activation_email_context(user, user_registration) message_context.update({ 'confirm_activation_link': '{root_url}/activate/{activation_key}'.format( root_url=root_url, activation_key=message_context['key'] ), 'route_enabled': route_enabled, 'routed_user': user.username, 'routed_user_email': user.email, 'routed_profile_name': profile_name, }) if route_enabled: dest_addr = settings.FEATURES['REROUTE_ACTIVATION_EMAIL'] else: dest_addr = user.email msg = AccountActivation().personalize( recipient=Recipient(user.username, dest_addr), language=preferences_api.get_user_preference(user, LANGUAGE_KEY), user_context=message_context, ) return msg
def compose_and_send_activation_email(user, profile, user_registration=None): """ Construct all the required params and send the activation email through celery task Arguments: user: current logged-in user profile: profile object of the current logged-in user user_registration: registration of the current logged-in user """ dest_addr = user.email if user_registration is None: user_registration = Registration.objects.get(user=user) context = generate_activation_email_context(user, user_registration) subject = render_to_string('emails/activation_email_subject.txt', context) # Email subject *must not* contain newlines subject = ''.join(subject.splitlines()) message_for_activation = render_to_string('emails/activation_email.txt', context) from_address = configuration_helpers.get_value('email_from_address', settings.DEFAULT_FROM_EMAIL) from_address = configuration_helpers.get_value('ACTIVATION_EMAIL_FROM_ADDRESS', from_address) if settings.FEATURES.get('REROUTE_ACTIVATION_EMAIL'): dest_addr = settings.FEATURES['REROUTE_ACTIVATION_EMAIL'] message_for_activation = ("Activation for %s (%s): %s\n" % (user, user.email, profile.name) + '-' * 80 + '\n\n' + message_for_activation) send_activation_email.delay(subject, message_for_activation, from_address, dest_addr)
def viatris_send_activation_email(user, profile, user_registration=None, site=None): from django.core.mail import ( EmailMultiAlternatives, get_connection, send_mail, EmailMessage, ) """ Construct all the required params and send the activation email through celery task Arguments: user: current logged-in user profile: profile object of the current logged-in user user_registration: registration of the current logged-in user """ dest_addr = user.email if user_registration is None: user_registration = Registration.objects.get(user=user) context = generate_activation_email_context(user, user_registration) context["site"] = site log.info("site--> %s,%s", site, context) subject = render_to_string("emails/activation_email_subject.txt", context) # Email subject *must not* contain newlines subject = "".join(subject.splitlines()) # txtmessage_for_activation = render_to_string('emails/activation_email.txt', context) htmlmessage_for_activation = get_template("emails/activation_email.html").render( context ) from_address = configuration_helpers.get_value( "email_from_address", settings.DEFAULT_FROM_EMAIL ) from_address = configuration_helpers.get_value( "ACTIVATION_EMAIL_FROM_ADDRESS", from_address ) if settings.FEATURES.get("REROUTE_ACTIVATION_EMAIL"): dest_addr = settings.FEATURES["REROUTE_ACTIVATION_EMAIL"] htmlmessage_for_activation = ( "Activation for %s (%s): %s\n" % (user, user.email, profile.name) + "-" * 80 + "\n\n" + htmlmessage_for_activation ) msg = EmailMessage(subject, htmlmessage_for_activation, from_address, [dest_addr]) msg.content_subtype = "html" # Main content is now text/html msg.send()
def send_reactivation_email_for_user(user): try: registration = Registration.objects.get(user=user) except Registration.DoesNotExist: return JsonResponse({ "success": False, "error": _('No inactive user with this e-mail exists'), }) try: context = generate_activation_email_context(user, registration) except ObjectDoesNotExist: log.error( u'Unable to send reactivation email due to unavailable profile for the user "%s"', user.username, exc_info=True) return JsonResponse({ "success": False, "error": _('Unable to send reactivation email') }) subject = render_to_string('emails/activation_email_subject.txt', context) subject = ''.join(subject.splitlines()) message = render_to_string('emails/activation_email.txt', context) from_address = configuration_helpers.get_value('email_from_address', settings.DEFAULT_FROM_EMAIL) from_address = configuration_helpers.get_value( 'ACTIVATION_EMAIL_FROM_ADDRESS', from_address) try: user.email_user(subject, message, from_address) except Exception: # pylint: disable=broad-except log.error(u'Unable to send reactivation email from "%s" to "%s"', from_address, user.email, exc_info=True) return JsonResponse({ "success": False, "error": _('Unable to send reactivation email') }) return JsonResponse({"success": True})
def send_reactivation_email_for_user(user): try: registration = Registration.objects.get(user=user) except Registration.DoesNotExist: return JsonResponse({ "success": False, "error": _('No inactive user with this e-mail exists'), }) try: context = generate_activation_email_context(user, registration) except ObjectDoesNotExist: log.error( u'Unable to send reactivation email due to unavailable profile for the user "%s"', user.username, exc_info=True ) return JsonResponse({ "success": False, "error": _('Unable to send reactivation email') }) subject = render_to_string('emails/activation_email_subject.txt', context) subject = ''.join(subject.splitlines()) message = render_to_string('emails/activation_email.txt', context) from_address = configuration_helpers.get_value('email_from_address', settings.DEFAULT_FROM_EMAIL) from_address = configuration_helpers.get_value('ACTIVATION_EMAIL_FROM_ADDRESS', from_address) try: user.email_user(subject, message, from_address) except Exception: # pylint: disable=broad-except log.error( u'Unable to send reactivation email from "%s" to "%s"', from_address, user.email, exc_info=True ) return JsonResponse({ "success": False, "error": _('Unable to send reactivation email') }) return JsonResponse({"success": True})