Python Django herald:无法发送带有附件的邮件

Python Django herald:无法发送带有附件的邮件,python,django,Python,Django,有人使用Django herald发送通知吗 我已经努力了好几天让它工作起来,但是缺少文档和无声的失败使得调试问题变得不可能。如果我在邮件中添加附件,邮件似乎就不会被发送 from herald.base import EmailNotification def sendMail(): SendThisMail(user, my_modal).send(user=my_user) # creates an error on this line as the file object i

有人使用Django herald发送通知吗

我已经努力了好几天让它工作起来,但是缺少文档和无声的失败使得调试问题变得不可能。如果我在邮件中添加附件,邮件似乎就不会被发送

from herald.base import EmailNotification


def sendMail():
    SendThisMail(user, my_modal).send(user=my_user) # creates an error on this line as the file object is closed and inaccessible.

@registry.register_decorator()
class SendThisMail(SomeBaseClass, EmailNotification):
    def __init__(self, user, my_modal: models.MyModal):
        super().__init__(user, my_modal)

        self.subject = "abc"

        file = open('.staticfiles/assets/some.pdf', 'rb')

        self.attachments = [('attachment_1', File(file))]

        self.context = {
            **self.context,
            'subject': self.subject,
            'attachment': self.attachments,
        }

        self.to_emails = [user.email]

有什么问题吗?

来自项目文档:

列表中的每个附件可以是以下附件之一:

由文件名、原始附件数据和mimetype组成的元组。附件数据的获取取决于您 因此,代码的相关部分应该是:

data=open'.staticfiles/assets/some.pdf',rb'.read self.attachments=['attachment_1',data',application/pdf']
上帝啊,它成功了!终于,我可以睡一觉了。我在第一次尝试时也尝试了同样的方法,但由于某种原因,它不起作用。奇怪的是,它现在起作用了:|非常感谢!现在我明白了为什么第一次它不起作用了-我用的是open。。。为了读取文件,当我离开with块时,文件被关闭,破坏了代码。我对目前的做法表示怀疑。这里的文件保持打开状态。在哪里关闭文件以及如何关闭?