1

我正在尝试从收到的邮件中获取附件并将​​其作为 Blob 属性存储在 GAE 数据存储中。我正在使用谷歌应用引擎 Python。

仅当文件是 excel 文件时,才应将文件添加到数据存储区。以下代码显示了我为此使用的方法。在该类中,“ mail_message.attachments”将给出收到邮件的附件列表。从中我们只能得到文件名和文件内容。但是在这里我必须获取文件的格式来检查它是否是一个excel文件。所以这就是我使用以下方法的原因。

 class LogSenderHandler(InboundMailHandler):
   def receive(self, mail_message):
     file_format_supported=['application/vnd.openxmlformatsofficedocument.spreadsheetml.sheet','application/vnd.ms-excel']
     for payload_no in range(len(mail_message.original.get_payload())):
        one_payload = mail_message.original.get_payload(payload_no)
        if one_payload.get_content_type() in file_format_supported:
            uploadfile=Files()
            uploadfile.temp_file=one_payload
            uploadfile.put()

这段代码给了我错误

属性 temp_file 必须可转换为 Blob 实例(Blob() 参数应该是 str 实例,而不是实例)

我想要做什么将有效负载类型转换为“str 实例”以将其存储为 blob 属性。

* *使用mail_message.attachments获取附件列表后,有没有其他方法可以找到文件类型。从此附件列表中获取的文件内容可以在解码后作为 blob 属性存储到 GAE 数据存储中**。

4

0 回答 0