Отправка электронного письма с вложением из django
Гуру джандо! Мне нужна ваша помощь! У меня есть приложение. Оно должно получить файл из формы, затем сохранить его в базе данных и отправить по электронной почте. Я создал модель, форму и представление. Вроде бы все работает нормально, файл сохраняется в базе данных, отправляется сообщение с вложением. Но размер файла во вложении = 0 байт и открыть его ни в одном почтовом клиенте не получается. Что я делаю не так? Вот часть моего кода:
models.py:
class Email(models.Model):
...
email = models.EmailField(default='...', verbose_name='Email')
forms.py:
class EmailForm(forms.ModelForm):
class Meta:
model = Email
fields = [..., 'time', 'file', ...]
widgets = {
...
'file': forms.FileInput(),
}
views.py:
def sender(request):
if request.method == 'POST':
form = EmailForm(request.POST, request.FILES)
if form.is_valid():
email_save = form.save()
...
email_date = request.POST.get('date', '')
html_content = render_to_string('email_sender/email_tmpl.html', {
...
})
txt_content = strip_tags(html_content)
email = EmailMultiAlternatives(
email_title,
txt_content,
settings.EMAIL_HOST_USER,
[email_adress]
)
email.attach_alternative(html_content, 'text/html')
if request.FILES:
email_file = request.FILES['file']
email.attach(email_file.name, email_file.read(), email_file.content_type)
email.send()
return redirect(sender)