我正在尝试从收到的邮件中获取附件并将其作为 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 数据存储中**。