在App Engine中使用Python/Django发送带CSV附件的邮件
我需要从一个表格中导出一些数据(不是所有的字段,还有一些属性),然后把这些数据作为附件发送到邮件里。
我在想要创建一个StringIO对象,把CSV格式的内容放进去,然后上传到一个存储空间里,再把这个文件附加到邮件中。但是我不知道怎么把StringIO转换成上传的文件。
我们可能要处理超过10万条记录,这会不会造成问题呢?
1 个回答
2
根据文档,mail.send_mail
这个函数有一个参数叫'attachments',它应该是一个包含两个元素的列表,每个元素是一个元组,分别是文件名和要附加的文件内容。你可以通过在一个StringIO对象上调用.get_value()
来获取文件内容。
关于大小,发出去的邮件限制在10MB以内。如果你的CSV文件超过这个大小,那就会有问题。如果可以的话,发送之前最好用gzip或zipfile压缩一下。