【问题标题】:Using App inventor app to mail from google app engine使用 App Inventor 应用程序从 google 应用程序引擎发送邮件
【发布时间】:2011-09-13 19:15:31
【问题描述】:

在应用程序发明者中使用 Shival wolfs WolfWebEmail2 通过 Google 应用程序引擎发送邮件,但收件人电子邮件中没有任何内容。

需要确认我的代码是否正确。

在应用引擎上没有显示任何错误。

这对于运行 webapp 的命令是否正确?

application = webapp.WSGIApplication([('/', MainPage), ('/sendemail', sendemail), ('/attach', attachfile)], debug=True)
def main():
  run_wsgi_app(application)

我觉得我有点小键盘大手指综合症。

非常感谢。

好的齐格。非常感谢。在这里

class sendemail(webapp.RequestHandler):

  def process_email(self, data):
outvalue=""
ValidData = False
logging.info("data: %s" %data)
details=data.split("|||")
data = "\"%s\"" %data
if len(details) == 5 or len(details) == 7:
  message = mail.EmailMessage()
  message.sender = EmailFrom
  NewAuthKey = details[0]
  EmailTo = details[1]
  EmailSubject = details[2]
  EmailBody = details[3]
  EmailBody = EmailBody.replace("\\t","\t")
  if details[4].lower()=="yes" and len(details) == 7:
    filename=details[5];
    file_id=details[6];
  ValidData = True

if ValidData:
  if NewAuthKey == AuthKey:
    logging.info("Auth Key Valid")
  else:
    logging.info("Auth Key does not Match")
    outvalue = "Auth Key is Invalid"
    ValidData = False

if ValidData:
  if mail.is_email_valid(EmailTo):
    message.to = EmailTo
  else:
    logging.info("Email Address for TO Address is Invalid")
    outvalue = "Email Address for TO Address is Invalid"
    ValidData = False

if ValidData:
  if len(EmailBody) > 0 and len(EmailSubject) > 0:
    message.subject = EmailSubject
    message.body = EmailBody
  else:
    logging.info("Subject or Body was Empty")
    outvalue = "Subject or Body was left Empty"
    ValidData = False

if ValidData:
  if details[4].lower()=="yes":
    try:
       filedata = db.GqlQuery("SELECT * FROM emailattach WHERE id = :1 LIMIT 1",file_id).get()
       if filedata:
         message.attachments = [(filename, filedata.blob)]
    except Exception, message:
      ValidData = False
      logging.info("Could not attach file:\n\n "+str(message))
      outvalue = "Could not attach file:\n\n "+str(message)

if ValidData:
  try:
    message.send()
    logging.info("Email Sent")
    outvalue = "Email Sent"
if details[4].lower()=="yes":   ##delete the file once emailed
      key = db.GqlQuery("SELECT __key__ FROM emailattach where id = :1", file_id).get()
      if key:
        db.run_in_transaction(dbSafeDelete,key)

  except Exception, message:
    logging.info(message)
    outvalue = str(message)

self.response.out.write(outvalue)

我希望就是这样!新手。

【问题讨论】:

    标签: android google-app-engine app-inventor


    【解决方案1】:

    你遗漏了样板的最后一部分:

    if __name__ == '__main__':
      main()
    

    没有它,每个实例的第一个请求将不会被处理。

    【讨论】:

    • 谢谢尼克。该代码在运行请求之后存在。我会发布 sendmail 功能供 Zig 评论。
    【解决方案2】:

    你能告诉我们sendemail功能吗?

    编辑

    message.sender = EmailFrom

    EmailFrom 在哪里?

    尝试删除所有验证并检查电子邮件是否已发送。

    首先尝试运行这个-

    message = mail.EmailMessage(sender="you@domain.com",
                                subject="Testing")
    message.to = "you@domain.com"
    message.body = "This is the body!"
    message.send()
    

    将两个电子邮件地址更改为您的电子邮件。

    如果有效,则一次检查验证和其他部分。

    【讨论】:

    • 很抱歉我刚接触 stackoverflow 并试图在错误的地方发布代码
    • 添加到上面。如果您看到我在 main.py 文件中看到的内容。
    • 谢谢你齐格。我会再玩一些。我开始了解 Python 代码的作用,并且可以看到来自应用程序的请求似乎以某种方式在应用程序引擎中丢失了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 2010-09-26
    相关资源
    最近更新 更多