Содержимое файла python imaplib gpg в сообщении - PullRequest
1 голос
/ 26 августа 2011

Lo,

Возникли некоторые проблемы с imaplib.Я пытаюсь вставить содержимое файла gpg в тело письма.

Зашифрованный файл выглядит примерно так:

ÕþëÂüÿΩfXаÕ庼H»[ßÖq«Ì5ßö

мой код выглядит примерно так:

<pre>gpgFH = open(gpgFile, 'rb') gpgStr = gpgFH.read()</p> <p>newEmail = email.message.Message() newEmail['Subject'] = 'blah' newEmail['From'] = 'blah@blah.com' newEmail['To'] = 'blah@blah.com' newEmail.set_payload(gpgStr+'\n') srv.append('INBOX', '', imaplib.Time2Internaldate(time.time()), str(newEmail))

Когда gpgStr "привет", это прекрасно работает.Когда это тот зашифрованный джиббериш, это не так.Я предполагаю, что Unicode поднимает свою уродливую голову в какой-то момент в решении, но я изо всех сил пытаюсь заставить это работать.

1 Ответ

2 голосов
/ 26 августа 2011

Попробуйте base64-кодирование данных файла.Приведенный выше код помещает двоичные данные в электронную почту, что не сработает.

import base64

gpgFH = open(gpgFile, 'rb')
gpgStr = gpgFH.read()
gpgEncoded = base64.b64encode(gpgStr)
...

Кроме того, вы можете добавить данные GPG в качестве вложения, а не тела.

...