gpt4 book ai didi

python - Google App Engine python 入站邮件 LookupError : unknown encoding

转载 作者:行者123 更新时间:2023-11-28 22:24:55 28 4
gpt4 key购买 nike

我正在使用“标准”入站邮件处理程序接收到我的 Google App Engine 应用程序的入站电子邮件,遵循示例 in the docs .

似乎发送到应用程序的特定电子邮件消息(不是由我发送)导调用子邮件 api 抛出 LookupError:未知编码异常。请查看回溯。

据我所知,这个异常是在应用程序的邮件处理程序被调用之前抛出的,显然使得应用程序的代码无法捕获和处理。真的是这样吗?

App Engine 似乎每隔大约 40 分钟重试一次失败的消息,这会继续产生错误(和警报...)有什么方法可以中止吗?

感谢您的帮助。

回溯:

Traceback (most recent call last):  File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1535, in __call__    rv = self.handle_exception(request, response, e)  File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1529, in __call__    rv = self.router.dispatch(request, response)  File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1278, in default_dispatcher    return route.handler_adapter(request, response)  File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1102, in __call__    return handler.dispatch()  File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 572, in dispatch    return self.handle_exception(e, self.app.debug)  File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 570, in dispatch    return method(*args, **kwargs)  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/ext/webapp/mail_handlers.py", line 70, in post    self.receive(mail.InboundEmailMessage(self.request.body))  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/mail.py", line 939, in __init__    self.update_from_mime_message(mime_message)  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/mail.py", line 1513, in update_from_mime_message    super(InboundEmailMessage, self).update_from_mime_message(mime_message)  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/mail.py", line 1422, in update_from_mime_message    super(EmailMessage, self).update_from_mime_message(mime_message)  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/mail.py", line 1291, in update_from_mime_message    subject = _decode_and_join_header(mime_message['subject'], separator=u'')  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/mail.py", line 597, in _decode_and_join_header    for s, charset in email.header.decode_header(header))  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/mail.py", line 597, in     for s, charset in email.header.decode_header(header))LookupError: unknown encoding: iso-8859-8-i

最佳答案

调用入站邮件处理程序的 post 方法时发生错误。

  File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/ext/webapp/mail_handlers.py", line 70, in post
self.receive(mail.InboundEmailMessage(self.request.body))

最简单的解决方案是在您自己的处理程序中覆盖 post 方法来捕获错误:

import logging
from google.appengine.ext.webapp.mail_handlers import InboundMailHandler


class MyInboundMailHandler(InboundMailHandler):

def post(self):
try:
super(MyInboundMailHandler, self).post()
except LookupError as ex:
logging.warning('Could not process message because %s.', ex)

def receive(self, mail_message):
# Process message

如果您不想丢失消息,您可以创建并注册自定义 iso-8859-8-i 编解码器。这似乎不是一个有据可查的过程,但这些问题提供了一些提示:

How do I properly create custom text codecs?

Custom Python Charmap Codec

how do I write a custom encoding in python to clean up my data?

和标准库的iso-8859-8 encoding提供了一个很好的模板。

关于python - Google App Engine python 入站邮件 LookupError : unknown encoding,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45988474/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com