Чтобы получать почту в вашем приложении GAE, следуйте документации здесь : в частности, вы получите экземпляр класса InboundEmailMessage
с атрибутом attachments
, который я цитирую:
- список вложенных файлов,
возможно пустой. Каждое значение в списке
является кортеж из двух элементов:
имя файла и содержимое файла.
Затем, в этих документах GAE , вы «создаете URL загрузки» и в своем обработчике загрузки (обычно подкласс BlobstoreUploadHandler ) вы используете get_upload
для получения BlobInfo экземпляров и поместите их метаданные куда-нибудь, что позже позволит вам получить их обратно, как может потребоваться вашему приложению.
Наконец, вы POST
данных (которые у вас есть от attachments
, выше) к вашему собственному недавно сгенерированному «URL для загрузки», например, использование urlfetch.fetch (с method-POST
и полезной нагрузкой в стандартной кодировке application/x-www-form-urlencoded
для «формы», которую пользователь будет заполнять, если они загружают данные напрямую, что является «нормальным» способ поместить данные в хранилище больших двоичных объектов - например, вы можете использовать urllib.urlencode для подготовки полезной нагрузки).
То, что "self-POST" будет использовать другой экземпляр вашего приложения для "получения" данных в хранилище BLOB-объектов (в то время как экземпляр, получивший письмо, ожидает, так как fetch
является синхронным).