我有一个Django项目,我正在开发一个电子邮件客户端。我决定使用python的IMAPClient代替标准库function is2ArrayGreater(Arr1, Arr2){
if(Arr1.length == Arr2.length){
var isEqual = true;
for(var i = 0; i< Arr1.length; i++){
if(Arr1[i] >= Arr2[i]){
isEqual = false;
break;
}
}
alert('result is: ' + isEqual);
}
};
来获取对邮件的访问权限。目前,我没有使用python's email package来编码/解码从IMAPClient收到的回复,我觉得我手动实现应由email处理的内容。
下载附件的示例代码:
imaplib
所以问题是,我应该如何重写此代码以使用email。 具体来说,我应该如何处理IMAPClient的响应,将其传递给电子邮件的message_from_bytes()函数?
答案 0 :(得分:1)
如果您希望使用电子邮件包的message_from_bytes()函数解析电子邮件,则需要为其提供整个原始电子邮件正文。要获得此功能,请使用RFC822
选择器进行提取,如下所示:
fetch_data = server.fetch(msgid, ['RFC822'])
parsed = email.message_from_bytes(fetch_data[msgid][b'RFC822'])
如果您从IMAP服务器中提取单个邮件部分/附件,则服务器正在为您有效地执行解析工作,并且您不需要使用电子邮件包的解析器。