Отправка 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
Как мне прикрепить это к файлу? Должен ли я преобразовать его в файл и сохранить его локально, а затем прочитать его и отправить по электронной почте, а затем удалить его? (Это не кажется правильным способом сделать это)