Пытаясь создать код Python для печати электронной почты на веб-сайте с IMAP, localhost не отвечает

1

Поэтому я пытался создать код для печати входящих сообщений Gmail на веб-сайт. Я хочу продолжить разработку, чтобы содержать только определенные данные из электронной почты и записывать их в базу данных. Однако мне не кажется, что с кодом что-то не так, но localhost: 8080 (порт, который я использую) не загружается вообще. В браузере есть значок загрузки при попытке доступа к странице, но он не загружается даже через часы. Командная строка не отвечает никакими ошибками. У меня также есть настройки imap GMAIL правильно, и я также пробовал его с электронной почтой Outlook. Вот код:

import webapp2
import smtplib
import time
import imaplib
import email


class ReadMail(webapp2.RequestHandler):

def get(self):
    mail = imaplib.IMAP4('[email protected]',993)

    mail.login('[email protected]','password')

    type, data = mail.search(None, 'ALL')
    mail_ids = data[0]

    id_list = mail_ids.split()   
    first_email_id = int(id_list[0])
    latest_email_id = int(id_list[-1])

    for i in range(latest_email_id,first_email_id, -1):
        typ, data = mail.fetch(i, '(RFC822)' )

        for response_part in data:
            if isinstance(response_part, tuple):
                msg = email.message_from_string(response_part[1])
                email_subject = msg['subject']
                email_from = msg['from']
                self.response.headers["Content-Type"] = "text/plain"
                self.response.write("From:" + email_from)
                self.response.write("Subject:" + email_subject)


routes = [('/', ReadMail),]

app = webapp2.WSGIApplication(routes, debug=True)

App.yml правильно настроен. Этот код работает с чем-то очень простым, например, только с print "this". Надеюсь, кто-то может помочь с моей проблемой, спасибо заранее!

Теги:
email
web
imap
web-applications

1 ответ

0
Лучший ответ

Поэтому через некоторое время я начал работать, создав свой собственный файл приложения WSGI вместо использования webapp2. Есть еще некоторые проблемы, такие как неправильное форматирование сообщения, но теперь это мой код:

from pyramid.config import Configurator
from pyramid.response import Response
import email, getpass, imaplib, os, re
import sys
detach_dir = "C:\OTHERS\CS\PYTHONPROJECTS"

def imaptest(request):

    m = imaplib.IMAP4_SSL("imap.gmail.com")
    m.login("[email protected]", "testiprotokolla221")

    m.select("INBOX")

    resp, items = m.search(None, '(FROM "[email protected]")')
    items = items [0].split()

    my_msg = []
    msg_cnt = 0
    break_ = False

    for emailid in items[::1]:
        resp, data = m.fetch(emailid, "(RFC822)")

        if ( break_ ):
            break

        for response_part in data:

            if isinstance(response_part, tuple):
                msg = email.message_from_string(response_part[1])
                varSubject = msg['subject']
                varDate = msg['date']

                if varSubject[0] == '$':
                    r, d = m.fetch(emailid, "(UID BODY[TEXT])")
                    ymd = email.utils.parsedate(varDate)[0:3]
                    my_msg.append([ email.message_from_string(d[0][1]), ymd])

                    msg_cnt += 1

    # Print as HTML
    return Response(  
        'Content-Type': 'text/html'    
        "Your latest Email:" + str(msg)
    )

config = Configurator()
config.add_route('imaptest', '/imaptest')
config.add_view(imaptest, route_name='imaptest')
app = config.make_wsgi_app()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню