just as a follow-up here, i got this to work simply using a combination of 
what everyone said. here's what i did:

i added the following to my app.yaml above the handlers: section:

inbound_services:
- mail

under handlers (and for me, below remote_api), i added the following code:
- url: /_ah/mail/.+ 
  script: gaehandler.py 
  login: admin

i then went followed jonathan's advice and copied router.example.py in the 
web2py folder to routes.py, and uncommented (and changed "welcome" to 
"init") the following lines:

routers = dict(

    # base router
    BASE = dict(
        default_application = 'init', # used to be 'welcome'
    ),
)

i created a table in db.py as such:

db.define_table('email',
    Field('body', 'string')
    )

finally, i went to my init/controllers directory, created _ah.py and put 
this inside:

def mail():
    # more details here: 
http://code.google.com/appengine/docs/python/mail/receivingmail.html
    from google.appengine.api.mail import InboundEmailMessage
    
    message = InboundEmailMessage(request.body)
    html_bodies = message.bodies('text/html')
    for content_type, body in html_bodies:
        decoded_html = body.decode()

    db.email[0] = dict(body=decoded_html)

that's it -- it works, and the body of the email ends up in my db. i hope 
that helps.

matt

Reply via email to