Django не отправляет сообщение электронной почты с вложенным zip-файлом

Всем привет! У меня проблема с отправкой письма с помощью бэкенда Django smtp email и SendGrid. Моя задача выглядит следующим образом. Он делает партию pdf файлов с помощью pyppeteer, зипует их в архив, прикрепляет к сообщению и затем отправляет на email. Так и должно быть, но это не работает! Я проверил его с другим представлением для отправки электронной почты (немного другая логика, без zip или чего-то еще.) и он работает, но это означает, что это не проблема с sendgrid и другими вещами, такими как секретные ключи в конфигурации uwsgi.

Дело в том, что письма не застревают в списке отправителей. Я попробовал поместить вместо pdf-файла какой-нибудь фиктивный кусочек типа pdf_file = b'some bytes' и это сработало на моей локальной машине, но не сработало на сервере. Размер zip-архива я получил из ответа. Пожалуйста, объясните мне, где я ошибаюсь

### views.py
@csrf_exempt
@require_POST
def generate_batch_pdf(request, blueprint):
    try:
        payload = json.loads(request.body)

        email = payload.get('email')
        uuids = payload.get('uuids')

        zip_buffer = io.BytesIO()
        compression = zipfile.ZIP_DEFLATED
        with zipfile.ZipFile(zip_buffer, 'a', compression, False) as f:
            for uuid in uuids:
                report_name = _report_name(uuid, blueprint)
                pdf_file = async_to_sync(generate_pdf_file)(
                    request.get_host(),
                    uuid,
                    blueprint,
                    report_name,
                )
                f.writestr(
                    zinfo_or_arcname='{0}'.format(report_name),
                    data=pdf_file,
                )

        msg = EmailMessage(
            subject='Отчеты Тест',
            body='Архив выбранных отчетов',
            from_email=settings.DEFAULT_FROM_EMAIL,
            to=[email],
        )

        msg.attach('reports.zip', zip_buffer.getvalue(), 'application/zip')
        msg.send(fail_silently=False)

        return JsonResponse(
            {
                'msg': 'Ok',
                # it's here just for check 
                'size': '{0}'.format(sys.getsizeof(zip_buffer)),
            },
        )
    except Exception as e:
        return JsonResponse({'msg': 'Err -> {e}'.format(e=e)})

Я использую python 3.6

### requirements.txt
django==3.1
...
Вернуться на верх