пятница, 23 октября 2009 г.

GAE: Mail API - Получение и отправка почты

Не так давно Google анонсировал, что приложения для Google App Engine (GAE) могут не только отправлять почту, но и принимать ее.
Документация на Mail API, в которой описывается механизм принятия сообщении, пока есть только на англииском.

Вот небольшой примерчик:

Пример принимает почту посланную на адрес вида string@supermailapp.appspotmail.com и возвращает его отправителю.

Тогда app.yaml будет выглядеть так:
application: supermailapp
version: 1
runtime: python
api_version: 1

inbound_services:
- mail

handlers:
- url: /_ah/mail/.+ 
  script: handle_incoming_email.py 
  login: admin

а обработчик вот так:

import logging
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.api import mail
from google.appengine.ext.webapp.mail_handlers import InboundMailHandler

class MyInboundMailHandler(InboundMailHandler):
 def receive(self, mail_message):
  logging.info('Received greeting from %s: %s' % (mail_message.sender,mail_message.body))
  mail.send_mail(
   sender=mail_message.to,
   to=mail_message.sender,
   subject=mail_message.subject,
   body=mail_message.body)
  logging.info('Sended answer to  %s'% mail_message.to)

application = webapp.WSGIApplication([MyInboundMailHandler.mapping(),], debug=True)

def main():
  run_wsgi_app(application)

if __name__ == "__main__":
  main()

Всё очень просто.

Комментариев нет: