Как вы декодируете двоичное почтовое сообщение в Python? - PullRequest
2 голосов
/ 26 октября 2010

Я пишу приложение движка Google App, которое обрабатывает входящую почту, и вот код, который я сейчас использую для обработки почтовых сообщений:

for content_type, body in email_bodies:
#8bit bug in mail messages - see bug report here
#http://code.google.com/p/googleappengine/issues/detail?id=2383
if body.encoding == '8bit':
    body.encoding = '7bit'

#test for html content
if content_type == "text/html":
    #parse html result

if content_type == "text/plain":
    decoded_msg_body = body.decode()

Однако я только что получил сообщение, которое использовалодвоичная схема кодирования, и когда моя программа пыталась обработать сообщение, используя body.decode (), я получил UnknownEncodingError.Как эта программа должна анализировать двоичный тип контента?Кроме того, как я могу имитировать этот тип сообщения в моей локальной версии GAE, чтобы я мог отлаживать и тестировать его?

Я ценю вашу помощь, Кевин

1 Ответ

1 голос
/ 26 октября 2010

Вместо того, чтобы изобретать велосипед, вы должны попробовать встроенный в Python парсер электронной почты.

http://docs.python.org/library/email.parser.html

Он разработан для того, чтобы справляться с трудностями, связанными с получением всевозможных форматов электронной почты в хороший объект Python. Используйте его для анализа, и вы получите хорошо предсказуемые объекты для работы.

Модуль электронной почты не выполняет отправку и получение сообщений, он просто помогает их собрать и разобрать.

...