아래의 코드가 작동하지 않는 이유는 무엇입니까? 전자 메일이 수신되고 올바른 파일 이름 (.png 파일)을 통해 파일이 제공됩니다. 그러나 파일을 열려고 시도하면 올바르게 열리지 않습니다 (Windows 갤러리에서 그 파일이 can't open this photo or video
이고 그 파일이 the file may be unsupported, damaged or corrupted
).GAE에서 blobstore의 데이터를 전자 메일 첨부 파일로 보내십시오.
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='[email protected]',
to='[email protected]',
subject='this is the subject',
body='hi',
reply_to='[email protected]',
attachments=[(blob_info.filename, value)]
)
send_forum_post_notification()
내가 튜플을 사용 send_mail에서'attachments' 필드는 2 차원의 목록으로, 메시지의 첨부 파일'에 해당 각 튜플에 대해 하나의 튜플을 반환합니다. 각 튜플은 파일 이름을 첫 번째 요소로, 파일 내용을 두 번째 요소로 포함합니다 .' – HorseloverFat