Несколько адресов электронной почты App Engine возвращают 404

Я пытаюсь обработать входящие электронные письма (на сервере разработки), отправленные на разные адреса, например:

- url: /_ah/jogo@.*rpg2e\.appspotmail\.com
script: jogo.py

- url: /_ah/contato@.*rpg2e\.appspotmail\.com
script: contato.py

- url: /.*
script: helloworld.py

но я получаю следующее сообщение журнала:

INFO     2012-07-27 20:05:31,759 dev_appserver.py:2952] "POST /_ah/mail/[email protected] HTTP/1.1" 404 -

Я также пробовал:

- url: /_ah/jogo@rpg2e\.appspotmail\.com
script: jogo.py

- url: /_ah/contato@rpg2e\.appspotmail\.com
script: contato.py

- url: /.*
script: helloworld.py

но безрезультатно.

Если я просто использую handle_all, он работает как шарм, но я бы хотел, чтобы мой скрипт обрабатывал только электронную почту, отправленную на правильный адрес [email protected].

Потратив некоторое время на поиски в Интернете и в Stack Overflow, я столкнулся со многими вопросами, подобными моему, и единственным рабочим решением было использование универсального подхода. На некоторые из них Ikai Lane[1] даже ответил тем же выводом — только ловить все работает.

Опять же, кто-нибудь добился успеха, используя несколько обработчиков?

[1] https://groups.google.com/forum/?fromgroups#!topic/google-appengine-java/UGTkMV9foJ0


person Eduardo    schedule 27.07.2012    source источник


Ответы (1)


Из Google App Engine Python — получение почты

url: /_ah/mail/owner@.*your_app_id\.appspotmail\.com 
  script: handle_owner.py 
  login: admin
- url: /_ah/mail/support@.*your_app_id\.appspotmail\.com 
  script: handle_support.py 
  login: admin

Вам не хватает /mail/ части требуемого пути. Вы ОТПРАВЛЯЕТЕСЬ на /_ah/[email protected] вместо /_ah/mail/[email protected]. Попробуйте это вместо этого:

- url: /_ah/mail/jogo@rpg2e\.appspotmail\.com
  script: jogo.py

- url: /_ah/mail/contato@rpg2e\.appspotmail\.com
  script: contato.py

Наконец, у всех нас время от времени возникает туннельное зрение, когда мы сталкиваемся с проблемой, но стоит отметить ценность сообщений об ошибках. Сообщение об ошибке сообщает нам, где ищет App Engine, когда отправляет запрос POST, который вы можете сопоставить с вашими обработчиками:

INFO   2012-07-27 20:05:31,759 dev_appserver.py:2952] "POST /_ah/mail/[email protected] HTTP/1.1" 404 
person jmort253    schedule 27.07.2012
comment
Большое тебе спасибо! Немного смущает то, что решение было таким простым и кристально ясным. Я полагаю, что пропустил сообщение журнала, но я подтверждаю, что ваша модификация сработала. Извините за беспокойство, но нужно ли отмечать проблему как решенную? - person Eduardo; 28.07.2012
comment
Как я уже сказал, у всех время от времени возникает туннельное зрение. Я чувствовал, что было бы неполным не подчеркнуть важность сообщений об ошибках, на случай, если прохожий может извлечь из этого уроки. Удачи с вашим проектом! :) - person jmort253; 28.07.2012