我正在尝试在Django中发送带附件的电子邮件。文件是request.FILE['file']
对象(InMemoryUploadedFile类型)。我按EmailMessage(...)
创建邮件,然后按message.attach(f.name, f.read(), f.content_type)
附加文件。
发送电子邮件失败并显示错误消息:
'InMemoryUploadedFile' object has no attribute 'encode'
答案 0 :(得分:0)
这在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()
其中documents[]
是输入html标记的名称:
<input name="document[]" id="file" type="file">