imaplib有一些问题。我正在尝试将gpg文件的内容放入电子邮件的正文中。

加密的文件如下所示:

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

我的代码看起来像这样:

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

当gpgStr为“ hello”时,可以正常工作。当那是加密的胡言乱语时,它就显得重要了。我猜测unicode在解决方案中的某些时候会抬起头来,但我正在努力使其正常工作。

最佳答案

尝试对文件的数据进行base64编码。上面的代码将二进制数据放入电子邮件中,这将无法正常工作。

import base64

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


或者,您可能希望将GPG数据添加为附件而不是正文。

关于python - python imaplib gpg文件内容转换为消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7197199/

10-12 12:38