我想用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">

10-04 21:43
查看更多