old_contents: import logging
  
  from django.core import mail
  
  from .tasks import task_email_user
  
  logger = logging.getLogger(__name__)
  
  
  def send_email(user, template, context, attachments=None, delete_attachments_after_send=False,
                 language_code=None):
      '''
      Send email to user
  
      :param user: User instance or recipient email addres
      :param template: Template to use for email
      :param context: Context for email
      :param attachments: List of attachments
      :param delete_attachments_after_send: If true, delete attachments from storage after sending
      :param language_code: Language code for template
      :return:
      '''
  
      ### check if we are using test framework
      if hasattr(mail, 'outbox'):
          ### if yes, do not defer sending email
          send_email_f = task_email_user
      else:
          ### otherwise, defer sending email to celery
          send_email_f = task_email_user.delay
  
      ### send email
      send_email_f(
          user.pk if user else None,
          template,
          context,
          attachments=attachments,
          delete_attachments_after_send=delete_attachments_after_send,
          language_code=language_code
      )
  
new_contents: import logging
  
  from django.core import mail
  
  from .tasks import task_email_user
  
  logger = logging.getLogger(__name__)
  
  
  def send_email(user, template, context, attachments=None, delete_attachments_after_send=False,
                 language_code=None):
      '''
      Send email to user
  
      :param user: User instance or recipient email addres
      :param template: Template to use for email
      :param context: Context for email
      :param attachments: List of attachments
      :param delete_attachments_after_send: If true, delete attachments from storage after sending
      :param language_code: Language code for template
      :return:
      '''
  
      ### check if we are using test framework
      if hasattr(mail, 'outbox'):
          ### if yes, do not defer sending email
          send_email_f = task_email_user
      else:
          ### otherwise, defer sending email to celery
          send_email_f = task_email_user.delay
  
      try:
          user = user.pk
      except AttributeError:
          pass
  
      ### send email
      send_email_f(
          user,
          template,
          context,
          attachments=attachments,
          delete_attachments_after_send=delete_attachments_after_send,
          language_code=language_code
      )
  
subject: Fix AttributeError when supplying email address as user