问题描述
我正在尝试在Django中发送带有附件的电子邮件.文件是 request.FILE ['file']
对象(InMemoryUploadedFile类型).我通过 EmailMessage(...)
创建消息,然后通过 message.attach(f.name,f.read(),f.content_type)
附加文件..>
发送电子邮件失败,出现以下错误:'InMemoryUploadedFile'对象没有属性'encode'
这在 forms.py
导入EmailMultiAlternativesemail = EmailMultiAlternatives(subject =某些主题",from_email='from_address@some_domain.com',到= ['recipient1@another_domain.com'],body =一些html内容")email.content_subtype ="html"如果hasattr(self.files,'getlist'):files = self.files.getlist('document []')对于文件中的_file:_file.open()email.attach(_file.name,_file.read(),_file.content_type)_file.close()email.send()
documents []
是输入html标记的名称:
<输入名称="document []" id ="file" type ="file">
I'm trying to send an email with an attachment in Django. File is request.FILE['file']
object (InMemoryUploadedFile type). I create message by EmailMessage(...)
and then attach file by message.attach(f.name, f.read(), f.content_type)
.
Sending email fails with given error:'InMemoryUploadedFile' object has no attribute 'encode'
This worked for me inside a form definition in forms.py
from django.core.mail import EmailMultiAlternatives
email = EmailMultiAlternatives(
subject='some subject',
from_email='from_address@some_domain.com',
to=['recipient1@another_domain.com'],
body='some html content')
email.content_subtype = "html"
if hasattr(self.files, 'getlist'):
files = self.files.getlist('document[]')
for _file in files:
_file.open()
email.attach(_file.name, _file.read(), _file.content_type)
_file.close()
email.send()
Where documents[]
is the name of the input html tag:
<input name="document[]" id="file" type="file">
这篇关于'InMemoryUploadedFile'对象没有属性'encode'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!