InboundMailHandler似乎只能使用一次

我正在为Google App Engine(使用Python和Django)编写应用程序,该应用程序需要接收电子邮件并将收到的电子邮件的某些元素添加到数据存储区。 我是一个非常新手的程序员。

问题是我指定处理传入邮件的脚本似乎只运行一次(直到脚本被触摸)。

将测试电子邮件从本地管理控制台发送到“test@downloadtogo.appspotmail.com”会导致实体正确添加到本地数据存储区。

发送第二,第三等测试电子邮件不起作用 - 不添加实体。

'触摸' handle_incoming_email.py (我的理解是指添加或删除空格然后保存),然后发送另一个测试电子邮件,将导致实体正确添加。

app.yaml中:

application: downloadtogo
version: 1
runtime: python
api_version: 1

handlers:
- url: /static
  static_dir: static

- url: /.*
  script: main.py

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

inbound_services:
- mail

handle_incoming_email.py:


from downloadtogo.models import Email

import logging, email
import wsgiref.handlers
import exceptions

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

class MailHandler(InboundMailHandler):
  def receive(self, message):
    email = Email()
    email.from_address = message.sender
    email.put()

def main(): 
    application = webapp.WSGIApplication([MailHandler.mapping()], debug=True)
    wsgiref.handlers.CGIHandler().run(application)

main()

models.py:


from appengine_django.models import BaseModel
from google.appengine.ext import db

class Email(db.Model):
  from_address = db.StringProperty()
  to_address = db.StringProperty()
  body = db.StringProperty(multiline=True)
  added_on = db.DateTimeProperty(auto_now_add=True)

处理程序按顺序匹配。 .*匹配任何请求,所以电子邮件处理程序永远不会匹配。 放.* 。最后。

链接地址: http://www.djcxy.com/p/91611.html

上一篇: InboundMailHandler appears to only work once

下一篇: Could not install package ‘readr’!