2016-03-08 45 views
0

对不起,如果这看起来像一个非常愚蠢的问题,但我不是从编程背景严格,我有很多困难使用谷歌AppEngine webapp2框架合并我的代码。如何将您的代码添加到Google AppEngine的Webapp 2框架

我的代码是建立登录到我自己的电子邮件帐户,并获取最新的电子邮件,然后返回字段,如内容和发件人。我测试了这个代码,它工作正常。但是在使用webapp 2框架时出现问题(错误500)。

有人可以告诉我如何使用webapp2框架的这种情况?

我的Python代码:

import easyimap 

host = "imap.gmail.com" 
user = my_username 
password = my_password 
mailbox = "inbox" 
imapper = easyimap.connect(host, user, password, mailbox) 

mail1, mail2 = imapper.listup(2) # take latest 2 emails 
mail1.uid #uid is email id 
email_body = mail1.body 
email_sender = mail1.from_addr 
email_id = mail1.uid 
email_receipt = mail1.to 
email_cc = mail1.cc 

email_list = [email_body, email_title,email_sender, email_id, 
     email_cc,email_receipt] 
print(email_list) 

webapp2的在main.py

import webapp2 

class MainHandler(webapp2.RequestHandler): 
    def get(self): 
     self.response.write('Hello Natalie!') 

app = webapp2.WSGIApplication([ 
    ('/', MainHandler) 
], debug=True) 
+0

我使用SDK上传我的文件,GAE将在之后托管它们。不知道它会如何为你工作。 –

+0

是的我使用的GAE,但我不知道如何使我的代码工作的webapp框架工作:( – Poochinblack

回答

0

喜欢的东西:

# File: mailer.py - next to "main.py" 
import easyimap 
import webapp2 

class MailerHandler(webapp2.RequestHandler): 
    def get(self): 
     host = "imap.gmail.com" 
     user = my_username 
     password = my_password 
     mailbox = "inbox" 
     imapper = easyimap.connect(host, user, password, mailbox) 

     mail1, mail2 = imapper.listup(2) # take latest 2 emails 
     mail1.uid #uid is email id 
     email_body = mail1.body 
     email_sender = mail1.from_addr 
     email_id = mail1.uid 
     email_receipt = mail1.to 
     email_cc = mail1.cc 

     email_list = [email_body, email_title,email_sender, email_id, 
       email_cc, email_receipt] 
     self.response.write(', '.join(email_list)) 

而main.py:

import MailerHandler from mailer 
import webapp2 

app = webapp2.WSGIApplication([ 
    ('/mail-handler', MailerHandler) 
], debug=True) 

然后在浏览器中调用http://[SERVER:PORT]/mail-handler

如果您遇到错误500,您需要查看登录控制台并询问具体问题。

确保您已将“easyimap”复制到项目文件夹(位于main.py旁边),并且此库不使用套接字并以纯Python编写。阅读关于添加3D方库的本节:https://cloud.google.com/appengine/docs/python/tools/libraries27#vendoring

+0

谢谢,easyimap不真正与GAE工作,但我用你的代码结构,它与我的工作应用程序的其他部分 – Poochinblack

+0

不用客气,对答案进行表决可以是对“谢谢”的补充。 –

相关问题