thirdparty/google_appengine/google/appengine/ext/webapp/mail_handlers.py
changeset 2864 2e0b0af889be
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/google_appengine/google/appengine/ext/webapp/mail_handlers.py	Sun Sep 06 23:31:53 2009 +0200
@@ -0,0 +1,78 @@
+#!/usr/bin/env python
+#
+# Copyright 2007 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+"""Handler library for inbound Mail API.
+
+Contains handlers to help with receiving mail.
+
+  InboundMailHandler: Has helper method for easily setting up
+    email recievers.
+"""
+
+
+
+
+
+from google.appengine.api import mail
+from google.appengine.ext import webapp
+
+
+MAIL_HANDLER_URL_PATTERN = '/_ah/mail/.+'
+
+
+class InboundMailHandler(webapp.RequestHandler):
+  """Base class for inbound mail handlers.
+
+  Example:
+
+    # Sub-class overrides receive method.
+    class HelloReceiver(InboundMailHandler):
+
+      def receive(self, mail_message):
+        logging.info('Received greeting from %s: %s' % (mail_message.sender,
+                                                        mail_message.body))
+
+
+    # Map mail handler to appliction.
+    application = webapp.WSGIApplication([
+        HelloReceiver.mapping(),
+    ])
+  """
+
+  def post(self):
+    """Transforms body to email request."""
+    self.receive(mail.InboundEmailMessage(self.request.body))
+
+  def receive(self, mail_message):
+    """Receive an email message.
+
+    Override this method to implement an email receiver.
+
+    Args:
+      mail_message: InboundEmailMessage instance representing received
+        email.
+    """
+    pass
+
+  @classmethod
+  def mapping(cls):
+    """Convenience method to map handler class to application.
+
+    Returns:
+      Mapping from email URL to inbound mail handler class.
+    """
+    return MAIL_HANDLER_URL_PATTERN, cls