通过电子邮件发送来自Google App Engine的csv附件,而无需下载附件

时间:2014-04-23 04:31:50

标签: python google-app-engine csv attachment email-attachments

我找到了这个帖子:GAE Python - How to attach the results of csv.writer to an email?

这有助于我将csv附加到来自Google App Engine的电子邮件中。我的代码如下:

self.response.headers[str('Content-Type')] = str('text/csv')
self.response.headers[str('Content-Disposition')] = str('attachment; filename="data.csv"')
writer = csv.writer(self.response.out)
[write csv here]

message=mail.EmailMessage(sender='test@example.com',subject='Subject', attachments=[("data.csv",self.response.body)])
message.to=[to email here]
message.html='Message Body'
message.send()

问题是当此代码运行时,不仅会发送电子邮件,还会下载文件。有没有办法防止文件被下载?

1 个答案:

答案 0 :(得分:0)

正在下载,因为您正在将其写入响应输出。您应该将附件内容写入临时文件/内存并附加该内容。

此外,无需设置这些标题。

您引用的SO问题的接受答案是错误的,另一个答案是最好的https://stackoverflow.com/a/15453323/2018227