Отправка HttpResponse как вложения в электронных письмах в django

У меня есть класс, в котором я создаю загружаемый файл excel следующего вида:

    response = HttpResponse(content_type='application/vnd.openxmlformats- 
                            officedocument.spreadsheetml.sheet')
    response['Content-Disposition'] = 'attachment; filename=Scanned Data_{}.xlsx '.format(time.strftime("%d-%m-%Y %H:%M"))

    writer = ExcelWriter(response)
    .
    .
    .
    writer.save()

Теперь я хочу отправить это response как вложение к письму, для которого я использую Mimemultipart(), следующим образом:

    recipient_list = ['xxx@yyy.com',]

    message = MIMEMultipart()
    message['Subject'] = 'Results'
    message['From'] = 'xxx@yyyy.com'

    body_content = "foo"

    message.attach(MIMEApplication(response))
    message.attach(MIMEText(body_content, "html"))
    msg_body = message.as_string()
    server = SMTP('email-smtp.ap-south-1.amazonaws.com', 587)
    server.starttls()
    server.login('xxxx', 'xxx+x')
    server.sendmail(message['From'], recipient_list, msg_body)

, на что я получаю:

TypeError: ожидался объект типа байт, а не HttpResponse

Как мне прикрепить это к файлу? Должен ли я преобразовать его в файл и сохранить его локально, а затем прочитать его и отправить по электронной почте, а затем удалить его? (Это не кажется правильным способом сделать это)

Вернуться на верх