python - 从 blobstore 发送数据作为 GAE 中的电子邮件附件

标签 python google-app-engine blobstore

为什么下面的代码不起作用?电子邮件已收到,文件以正确的文件名发送(它是一个 .png 文件)。但是当我尝试打开该文件时,它无法正确打开(Win​​dows Gallery 报告它无法打开此照片或视频并且该文件可能不受支持、损坏或已损坏)。

当我使用 blobstore_handlers.BlobstoreDownloadHandler 的子类(基本上是 GAE 文档中的确切处理程序)和相同的 blob 键下载文件时,一切正常,Windows 读取图像。

更多信息 - 下载的二进制文件和电子邮件中的二进制文件看起来非常相似,但长度略有不同。

有人知道如何从 GAE blobstore 发送电子邮件附件吗? S/O上也有类似的问题,提示其他人也遇到过这个问题,但似乎没有任何结论。

from google.appengine.api import mail
from google.appengine.ext import blobstore

def send_forum_post_notification():
blob_reader = blobstore.BlobReader('my_blobstore_key')
blob_info = blobstore.BlobInfo.get('my_blobstore_key')
value = blob_reader.read()
mail.send_mail(
    sender='my.email@address.com',
    to='my.email@address.com',
    subject='this is the subject',
    body='hi',
    reply_to='my.email@address.com',
    attachments=[(blob_info.filename, value)]
)

send_forum_post_notification()

最佳答案

我不明白您为什么使用元组作为附件。我使用:

message = mail.EmailMessage(sender = ......
message.attachments = [blob_info.filename,blob_reader.read()]

关于python - 从 blobstore 发送数据作为 GAE 中的电子邮件附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14979119/

相关文章:

google-app-engine - gae 每月最后一天的 cron 作业

python - AppEngine - AppEngine HR 数据存储中奇怪的 ID 分配

java - java中的getServingUrl方法在Google云存储中获取异常

javascript - 使用 JavaScript 上传 Blobstore

python - 如何退出pdb并允许程序继续?

python - Django:如何从其他两个字段计算一个字段的初始值?

python - 我被要求用 python 编写一个函数(使用年金公式的现值)

python - Django 如何验证 POST 参数

java - AppEngine 上的 Adwords API (Java)

java - 无法打印上传的blob的数据