'NoneType'对象在AppEngine邮件发送中不可迭代

时间:2017-03-01 16:57:11

标签: python google-app-engine

在我的本地服务器上,尝试发送邮件时出现此错误

  

INFO 2017-03-01 16:54:06,819 mail_stub.py:143] MailService.Send
   来自:无“no-reply@None.appspotmail.com”
    致:v*****@d******.com
    主题:Du contenu到期时间到期(alldigital@test.gpartner.eu)
    正文:
      内容类型:text / plain
      数据长度:50
  INFO 2017-03-01 16:54:06,819 mail_stub.py:306]您目前没有发送真实的电子邮件。如果您安装了sendmail,则可以使用带有--enable_sendmail

的服务器来使用它      

错误2017-03-01 16:48:43,430 wsgi.py:279]追溯(最近的   最后打电话):
  文件“/home/*****/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py”,   第268行,处理中   对于结果中的块:
  TypeError:'NoneType'对象不可迭代

我的代码是:

def send(recipient, subject, body):
    message = mail.EmailMessage(
        sender=u'{} <no-reply@{}.appspotmail.com>'.format(app_identity.get_application_id(),
                                                           app_identity.get_application_id()),
        subject=subject,
        body=body,
        to=recipient
    )
    message.check_initialized()
    message.send()

我不知道出了什么问题。你有什么可以解决这个问题或者我可以尝试调试的东西吗?

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

好吧,我的坏。它与邮件无关,我只是在路由处理程序的末尾没有返回任何内容。错误来自那里。谢谢你的帮助。

答案 1 :(得分:0)

在您的日志中,这是发送电子邮件地址:

  

来自:无“no-reply@None.appspotmail.com”

我从未使用app_identity.get_application_id(),但它不适用于你,因为它返回“无”。为什么不对应用程序ID进行硬编码以确定是否能解决问题,而不是深入研究,即:

sender=u'no-reply@myapp.appspotmail.com'