我想用Django发送一封附有附件的电子邮件。文件是对象(InMemoryUploadedFile类型)。我通过request.FILE['file']
创建消息,然后通过EmailMessage(...)
附加文件。
发送电子邮件失败,出现给定错误:message.attach(f.name, f.read(), f.content_type)
最佳答案
这对我在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">