将电子表格附加到带有gae的邮件消息

时间:2009-09-18 14:49:16

标签: google-app-engine

我在gae的python sdk上运行django。

我的应用程序是针对小型企业的订单处理应用程序。我希望在完成订单后以电子表格的形式通过电子邮件向客户发送送货单。现在我一直在阅读文档,发送附件没问题,只是在gae中只允许某些文件类型。

我使用google data api创建了一个电子表格文档,但我的问题是如何通过电子邮件将Google电子表格文档发送给客户。我的appengine是在托管域上,所以正常的gmail帐户无法访问它,许多客户电子邮件帐户甚至都不是gmail,google电子表格附件只是一个指向doc托管的xml原子对象在我的帐户上无论如何都无法访问外部用户,对吗?

有没有办法复制这个电子表格对象并将其附加到电子邮件,因此它可以由没有访问我的谷歌文档的用户在本地打开,它基本上可以脱机打开。我的代码如下所示:

    new_entry = gdata.GDataEntry()
    new_entry.title = gdata.atom.Title(text='Delivery Note from ' + company.company_name)
    category = gd_client._MakeKindCategory(gdata.docs.service.SPREADSHEET_LABEL)
    new_entry.category.append(category)
    doc_entry = gd_client.Post(new_entry, '/feeds/documents/private/full')
   .....now build the spreadsheet
   doc_title = 'deliverynote' + '.' +  doc_entry.title.type
   .....build the email body
   mail.send_mail(sender_address, to_address, subject, body, attachments=[(doc_title, str(doc_entry))])

这样做但是当客户收到邮件时,当他们尝试打开邮件时,会出现意外错误(谷歌在尝试打开时使用的确切字词)。

另一种选择当然是尝试将其转换为excel文件。谷歌提供的方法将文件作为excel文件导出到本地文件系统,但是程序面临再次上传它的问题,无需任何手动用户干预。除了gae作为合法附件类型不支持excel文件类型。

有没有人有任何想法?

1 个答案:

答案 0 :(得分:0)

有趣的问题。

由于您使用GData创建它,您的GAE应用程序应该有权获取它的副本并附加它。不确定它将采用什么格式,以及接收它的人如何使用它。

如果您将Google电子表格附加到电子邮件中,该人如何打开它?谷歌“在网上”运行?我知道Google现在有一个离线选项,但我还没有尝试过。我认为它需要在本地计算机上安装Google Gears和其他东西。

您希望人们分享电子表格还是每个人都能获得自己的副本?您是否可以更改权限以让更多人拥有只读权限或更新权限?

您的所有收件人都有Excel吗?他们都有Google App帐户吗?

Neal Walters

相关问题