如何使用python获取接收邮件的附件并将其存储在blob属性字段中

时间:2013-07-31 14:38:09

标签: google-app-engine python-2.7 google-cloud-datastore email-attachments payload

我正在尝试从收到的邮件中获取附件,并将其作为Blob属性存储在GAE数据存储区中。我使用的是Google应用引擎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 instance”以将其存储为blob属性。

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

0 个答案:

没有答案