В сообщение могут быть вложены дополнительные файлы. Поле attachments сообщения может принимать в качестве параметра список кортежей, каждый из которых описывает вложение. Первый элемент этого кортежа используется в качестве имени файла, второй представляет собой массив байт с его содержимым.
from google.appengine.api import mail
from google.appengine.ext import db
class DocFile(db.Model):
doc_name = StringProperty()
doc_file = BlobProperty()
q = db.GqlQuery("SELECT * FROM DocFile WHERE doc_name = :1", myname)
results = q.fetch(1)
if results:
doc = results[0]
mail.send_mail(sender="support@example.com",
to="Albert Johnson <Albert.Johnson@example.com>",
subject="Запрошенный документ",
body="""
Запрошенный вами документ приложен к сообщению.
Команда сайта example.com
""",
attachments=[(doc.doc_name, doc.doc_file)])
Для вложений допускается использование только определенного типа файлов. Тип файла определяется по его расширению.
В целях безопасности в сообщениях электронной почты возможно использовать только определенный перечень типов фалов, которые определяются по их расширениям. Во вложении автоматически будет указан MIME-тип, сопоставленный с его расширением.
Ниже приводится список MIME-типов и их соответствующих расширений, которые допустимы для использования в качестве вложений.
| MIME тип | Расширение файла |
|---|---|
| image/x-ms-bmp | bmp |
| text/css | css |
| text/comma-separated-values | csv |
| image/gif | gif |
| text/html | htm html |
| image/jpeg | jpeg jpg jpe |
| application/pdf | |
| image/png | png |
| application/rss+xml | rss |
| text/plain | text txt asc diff pot |
| image/tiff | tiff tif |
| image/vnd.wap.wbmp | wbmp |