Hi all, I have a problem when searching for text with special characters in e-mails in an IMAP server. I'm using imaplib in python 2.4.3 and I can't get this code working:
# first connect and login conn = IMAP4(my_server) conn.login(my_user, my_pass) # now select INBOX conn.select('INBOX') # and search for messages (the first parameter of "search" is the encoding, which defaults to None) conn.search(None, '(ALL)') # output: ('OK', ['1 2 3']) # That works perfectly and I get the 3 messages that I have in my Inbox: # Now I want to search for messages with special characters. This works (still no special characters in my search): conn.search(None, '(BODY gasse)') # and even this: conn.search('ISO-8859-1', '(BODY gasse)') # but not this (there comes the 'ö'): conn.search('ISO-8859-1', '(BODY Lemböckgasse)') # error: SEARCH command error: BAD ['Bogus criteria list in SEARCH'] # After having read the IMAP4 documentation I thought this could work: conn.search('ISO-8859-1', '(CHARSET ISO-8859-1 BODY Lemböckgasse)') # I tried everything that came up to my mind, getting always the same error. For instance: conn.search(None, '(CHARSET ISO-8859-1 BODY Lemböckgasse)') conn.search(None, '(BODY Lemb\xf6ckgasse)') conn.search(None, '(BODY Lemböckgasse)'.encode('ISO-8859-1')) # here I get the error "can't decode byte 0xf6 in position 10" conn.search('ISO-8859-1', '(BODY Lemböckgasse)'.encode('ISO-8859-1')) And so on. Does anybody have the remotest idea what I'm doing wrong and how I could find my e-mail? Thanks in advance, Luis Corrales -- http://mail.python.org/mailman/listinfo/python-list