如何在Django的FileField中保存来自传入电子邮件的附件?

时间:2017-12-06 12:23:48

标签: python django email-attachments

我正在尝试将传入电子邮件的任何附件保存到Django中的FileField。

该模型如下所示:

class Email(models.Model):
  ...
  attachment = models.FileField(upload_to='files/%Y/%m/%d', null=True, blank=True)
  ...

  def __unicode__(self):
    return self.contents[:20]

我写了这个函数来返回附件。

def get_attachments(email_object):
    attachments = []
    for part in email_object.walk():
        # content_type = part.get_content_type()
        content_disposition = part.get("Content-Disposition")
        if content_disposition and content_disposition.lower().startswith("attachment"):
            attachments.append(part)
    return attachments

现在我有一个电子邮件对象的实例列表,我不知道如何将它们保存为FileField中的文件。 attachment.get_content_type()返回image/jpeg。但是,如何从这里开始使其成为可以保存在文件字段中的东西?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

要将电子邮件附件保存到目录并将记录保存在模型中,您需要执行以下操作,

Sub GuideTest()
    Dim dblPower, dblMass, dblRatedSpeed, dblRefLength, dblAwot, dblEngineSpeed, dblRoadSpeed As Double
    Dim dblPMR As Double

    dblPower = Worksheets("TestUserGuidance").Cell("B1").Value
    Worksheets("TestUserGuidance").Cell("E1") = dblPower
End Sub