以下のコードが機能しないのはなぜですか?電子メールが受信され、ファイルは正しいファイル名で送信されます(これは.pngファイルです)。しかし、ファイルを開こうとすると、正しく開かれません(Windowsギャラリーはそれとそれcan't open this photo or video
を報告しますthe file may be unsupported, damaged or corrupted
)。
blobstore_handlers.BlobstoreDownloadHandler
のサブクラス(基本的にはGAEドキュメントの正確なハンドラー)と同じblobキーを使用してファイルをダウンロードすると、すべてが正常に機能し、Windowsがイメージを読み取ります。
もう1つ情報があります。ダウンロードと電子メールのバイナリファイルは非常によく似ていますが、長さがわずかに異なります。
GAEブロブストアから送信される電子メールの添付ファイルを取得する方法について誰かがアイデアを持っていますか?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()