это мой код получения электронной почты, но я не могу получить электронную почту .. (google-app-engine) - PullRequest
1 голос
/ 25 апреля 2010
import logging, email
from google.appengine.ext import webapp 
from google.appengine.ext.webapp.mail_handlers import InboundMailHandler 
from google.appengine.ext.webapp.util import run_wsgi_app


class LogSenderHandler(InboundMailHandler):
    def receive(self, message):
        _subject = message.subject
        _sender=message.sender
        bodies = message.bodies('text/plain')
        allBodies = ""
        #for body in bodies:
        #  allBodies = allBodies + "\n---------------------------\n" + body[1].decode()
        #m= mail.EmailMessage(sender="zjm1126@gmail.com ",subject="reply to "+_subject)
        #m.to = _sender
        #m.body =allBodies
        #m.send()
        message = mail.EmailMessage(sender="zjm1126@gmail.com",
                                        subject="Your account has been approved")
        message.to = _sender
        message.body = """
        Dear Albert:

        Your example.com account has been approved.  You can now visit
        http://www.example.com/ and sign in using your Google Account to
        access new features.

        Please let us know if you have any questions.

        The example.com Team
        """

        message.send()



application = webapp.WSGIApplication([LogSenderHandler.mapping()], debug=True)

app.yaml:

application: zjm1126

version: 1-2
runtime: python
api_version: 1

inbound_services:
- mail

handlers:
- url: /media
  static_dir: media

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

- url: /
  script: a.py

- url: /sign
  script: a.py

- url: .*
  script: django_bootstrap.py

Я использую свою электронную почту: zjm1126@gmail.com отправьте несколько слов на ss@zjm1126.appspotmail.com

Я не могу получить письмо, почему?

Ответы [ 3 ]

3 голосов
/ 29 апреля 2010

У меня была такая же проблема и после изучения Google. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *,,,,,,,,,

def main():
    run_wsgi_app(application)
if __name__ == "__main__":
    main()

Надеюсь, это поможет.

1 голос
/ 25 апреля 2010

Похоже, вы пытаетесь заставить код из почты отправить \ получить учебник для работы. Я также использовал это руководство, чтобы проверить, как работает почтовый сервис, и у меня не было проблем с ним. Что я мог бы предложить сделать это:

  1. отделить отправку и получение почты сценарии, как кажется, вы собираетесь для его циклирования;

  2. Я думаю, у вас уже есть код отправки куда-то еще, но на всякий случай надо что-то отправить письмо к ss@zjm1126.appspotmail.com для вызвать обработчик LogSenderHandler;

  3. Вы можете проверить и отладить свой код локально с помощью разработки zjm1126 приставка. Попробуйте отправить электронное письмо от Вот: http://localhost:8080/_ah/admin/inboundmail и поставить точку останова в LogSenderHandler.receive метод для посмотрим, если его ударили и что происходит после этого;

  4. В вашем yaml я вижу другие обработчики, но webapp.WSGIApplication имеет только сопоставления LogSenderHandler. Это может быть причиной того, что эти другие сценарии не выполняются;

кроме этого ваш код и yaml выглядят нормально и должны работать

надеюсь, это поможет, с уважением

0 голосов
/ 26 апреля 2010

Все выглядит хорошо - ваш обработчик возвращает 200 OK. Если вы не получаете отправляемое электронное письмо, попробуйте зарегистрировать значения, которые вы используете, чтобы убедиться, что все верно и что вы ожидаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...