Мне трудно определить, закодировано ли текстовое сообщение электронной почты в кодировке base64. если это так, используйте эту строку кода; используя jython 2.2.1
dirty=base64.decodebytes(dirty)
в противном случае продолжайте как обычно.
Это код у меня банкомат. Какая строка кода позволит мне извлечь это из электронного письма:
"Content-Transfer-Encoding: base64"
import email, email.Message
import base64
def _get_email_body(self):
try:
parts=self._email.get_payload()
check=parts[0].get_content_type()
if check= = "text/plain":
part=parts[0].get_payload()
enc = part[0]['Content-Transfer-Encoding']
if enc == "base64":
dirty=base64.decodebytes(dirty)
elif check= = "multipart/alternative":
part=parts[0].get_payload()
enc = part[0]['Content-Transfer-Encoding']
if part[0].get_content_type()= = "text/plain":
dirty=part[0].get_payload()
if enc == "base64":
dirty=base64.decodebytes(dirty)
else:
return "cannot obtain the body of the email"
else:
return "cannot obtain the body of the email"
return dirty
except:
raise
Ладно, этот код теперь работает! Спасибо всем
хорошо, спасибо за напоминание, обычно это неплохо!
Возможный дубликат как я могу определить, закодирован ли заголовок электронной почты в кодировке base64






Пытаться:
enc = msg['Content-Transfer-Encoding']
Это заголовок, поэтому вы не сможете увидеть его, глядя на тело. Вы должны оказаться в том же месте, где узнали тему.
Это заголовок, но вы должны сначала получить полезную нагрузку из сообщения.
Это будет:
header = msg.get_payload()[0]
header['Content-Transfer-Encoding']
Я использую Python 3
Кажется, что иногда он содержится в объекте сообщения, а иногда в message.get_payload () [0], как упоминал Леон. Кто-нибудь может это прояснить?
Это заголовок для каждой части сообщения. Таким образом, основные части тела (текст или html) могут быть разными, как и любые вложения. Как сказано выше, вы должны получить полезную нагрузку для каждой части, а затем определить Content-Transfer-Encoding. Я удивлен, что это не было добавлено как свойство, но, поскольку я недостаточно умен, чтобы написать весь класс электронной почты, я не буду слишком сильно критиковать ;-)
Людям, отвечающим вам, было бы полезно, если бы вы могли сообщить нам, какие объекты библиотеки MIME вы используете. Вы используете библиотеки Python или объекты Java?