Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 应用程序引擎Python模块和入站邮件服务_Google App Engine_Email_Python 2.7_Module_Channel Api - Fatal编程技术网

Google app engine 应用程序引擎Python模块和入站邮件服务

Google app engine 应用程序引擎Python模块和入站邮件服务,google-app-engine,email,python-2.7,module,channel-api,Google App Engine,Email,Python 2.7,Module,Channel Api,我正在python项目中使用应用程序引擎模块。() 我还在m项目中收到电子邮件: 我想将电子邮件发送到我的工作模块,而不是默认模块。为此,my worker.yaml具有以下设置 亚马尔 api_version: 1 application: integrate module: worker version: 1-0-0 runtime: python27 threadsafe: true inbound_services: -

我正在python项目中使用应用程序引擎模块。()

我还在m项目中收到电子邮件:

我想将电子邮件发送到我的工作模块,而不是默认模块。为此,my worker.yaml具有以下设置

亚马尔

    api_version: 1
    application: integrate
    module: worker
    version: 1-0-0
    runtime: python27
    threadsafe: true

    inbound_services:
    - mail

    builtins:
    - deferred: on

    handlers:

    - url: /admin/.+
      script: src.worker.main.app
      login: admin

    - url: /_ah/mail/.+
      script: src.worker.main.app
      login: admin

    - url: /.*
      script: src.worker.main.app
app.yaml

    api_version: 1
    application: integrate
    version: 1-0-0
    runtime: python27
    threadsafe: true

    builtins:
    - deferred: on

    handlers:

    - url: /admin/.+
      script: src.default.main.app
      login: admin

    - url: /.*
      script: src.default.main.app
我甚至试着添加一个调度。yaml

    application: integrate

    dispatch:
    - url: "*/_ah/mail/.+"
      module: worker

但无论我做什么,到达我的应用程序的电子邮件都由默认模块处理。你知道我在这里遗漏了什么吗?我看到电子邮件进入,但无论我做什么,它们都只进入默认模块。

入站服务只能在默认模块内使用,这是预期行为。事实上,它在devserver中为您在本地工作是一个bug。

关于答案的一些附加信息可能会帮助处于类似情况的人们

我在DevServer日志中注意到:

“跳过dispatch.yaml规则,因为/\u ah/mail/[EMAIL\u ADDRESS\u FOR\u APP]不是可分派的路径。”

然而,这无疑是由于本地配置

无论如何,我现在使用Tasks的变通方法是:

  • 在默认模块中分派或直接处理入站邮件
  • 提供一个脚本处理程序,用于创建任务,并将相关的邮件数据作为有效负载
  • 将queue.yaml中的TaskQueue设置为您希望处理有效负载数据的模块,例如“worker”模块

本地版和直播版都会出现这种情况吗?谢谢您的评论。它在本地工作,但不是现场。一旦上线,它就不会被dispatch.yaml重定向。顺便说一下,这正是我的问题。通道api也是如此。入站服务似乎不尊重生产中的dispatch.yaml。听起来像个bug。我还没有试过你的代码,但可能会报告它是的,这是真的。这没有被记录下来。我应该在它出现的时候加上这个。