您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Unicode文本文件上接收App Engine Python中的电子邮件附件错误

在Unicode文本文件上接收App Engine Python中的电子邮件附件错误

附件有效负载EncodedPayload类的实例。附件具有编码和可选字符集。前者是指传输编码,例如base64;后者用于字符编码,例如UTF-8(此处的字符集有点过时和误导性的术语)。该EncodedPayload.decode()方法对传输编码和文本编码都进行解码,正如您所注意到的,如果您只想获取用户附加到其邮件中的原始字节,则该方法不是很有用。

您可以在此处采用多种方法,但是我建议您复制EncodedPayload的逻辑来解码传输编码,如下所示:

if filecontents.encoding and filecontents.encoding.lower() != '7bit':
  try:
    payload = filecontents.payload.decode(filecontents.encoding)
  except LookupError:
    raise UnkNownEncodingError('UnkNown decoding %s.' % filecontents.encoding)
  except (Exception, Error), e:
    raise PayloadEncodingError('Could not decode payload: %s' % e)
else:
  payload = filecontents.payload

请注意,如果附件 文本,则在存储附件 需要包括字符编码,否则当您将附件发送回用户时将无法解释它-原始文本可能已使用任何字符编码进行了编码。

同样,如果可以的话,您还应该保存附件的模仿类型,但这在API中的任何地方都没有公开。您可能要考虑完全避免使用IncomingMessage类,而是使用Python的mime消息模块对POST请求的主体进行解码。

python 2022/1/1 18:47:38 有336人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶