2017-05-28 3 views
0

Je construis un client de messagerie en utilisant Django et pour extraire des emails j'utilise imaplib. Jusqu'ici, je peux choisir la cause de dossier de boîte de réception dans chaque serveur d'imap son nom est "INBOX". Mais quand il s'agit de sélectionner d'autres dossiers comme Spam, Sent et d'autres, j'ai des problèmes parce que leur nom vient basé sur la langue du compte. Pour exemple mon compte est réglé sur la langue russe et mails inscription comme ceci:Python imaplib sélectionnant des dossiers

mail = imaplib.IMAP4_SSL(IMAP) 
mail.login(USERNAME, PASSWORD) 

for i in mail.list()[1]: 
    print(i) 

me donne la sortie suivante (utf-7):

b'(\\Inbox) "/" "INBOX"' 
b'(\\Spam) "/" "&BCEEPwQwBDw-"' 
b'(\\Sent) "/" "&BB4EQgQ,BEAEMAQyBDsENQQ9BD0ESwQ1-"' 
b'(\\Drafts) "/" "&BCcENQRABD0EPgQyBDgEOgQ4-"' 
b'(\\Trash) "/" "&BBoEPgRABDcEOAQ9BDA-"' 

Comment puis-je sélectionner des dossiers malgré le compte est sélectionné la langue? Si j'utilise:

mail.select("&BBoEPgRABDcEOAQ9BDA-") 

il fonctionne, mais mon client est inutile comme celui-ci.

Répondre

1

j'ai décidé de diviser la sortie et utiliser les noms de dossiers tels qu'ils sont, dans la langue qu'ils sont venus:

for i in mail.list()[1]: 
    l = i.decode().split(' "/" ') 
    print(l[0] + " = " + l[1])