diff --git a/extensions/webmail/fetch_parser.py b/extensions/webmail/fetch_parser.py index 7ebcb9c0e..40c590280 100644 --- a/extensions/webmail/fetch_parser.py +++ b/extensions/webmail/fetch_parser.py @@ -98,10 +98,15 @@ def parse_fetch_response(data): :return: a dictionnary """ result = {} - for part in data[0:-1]: - if part == ')': - continue - buf = "".join(part) + cpt = 0 + while cpt < len(data): + content = () + while cpt < len(data) and data[cpt] != ')': + content += data[cpt] + cpt += 1 + cpt += 1 + + buf = "".join(content) parts = buf.split(' ', 3) msgdef = result[int(parts[2])] = {} response = parts[3] @@ -170,4 +175,9 @@ if __name__ == "__main__": resp = [('856 (UID 11111 BODYSTRUCTURE ((("text" "plain" ("charset" "UTF-8") NIL NIL "7bit" 0 0 NIL NIL NIL NIL) "mixed" ("boundary" "----=_Part_407172_3159001.1321948277321") NIL NIL NIL)("application" "octet-stream" ("name" "26274308.pdf") NIL NIL "base64" 14906 NIL ("attachment" ("filename" "26274308.pdf")) NIL NIL) "mixed" ("boundary" "----=_Part_407171_9686991.1321948277321") NIL NIL NIL)'), ')'] + resp = [('19 (UID 19 FLAGS (\\Seen) BODYSTRUCTURE (("text" "plain" ("charset" "ISO-8859-1" "format" "flowed") NIL NIL "7bit" 2 1 NIL NIL NIL NIL)("message" "rfc822" ("name*" "ISO-8859-1\'\'%5B%49%4E%53%43%52%49%50%54%49%4F%4E%5D%20%52%E9%63%E9%70%74%69%6F%6E%20%64%65%20%76%6F%74%72%65%20%64%6F%73%73%69%65%72%20%64%27%69%6E%73%63%72%69%70%74%69%6F%6E%20%46%72%65%65%20%48%61%75%74%20%44%E9%62%69%74") NIL NIL "8bit" 3632 ("Wed, 13 Dec 2006 20:30:02 +0100" {70}', + "[INSCRIPTION] R\xe9c\xe9ption de votre dossier d'inscription Free Haut D\xe9bit"), + (' (("Free Haut Debit" NIL "inscription" "freetelecom.fr")) (("Free Haut Debit" NIL "inscription" "freetelecom.fr")) ((NIL NIL "hautdebit" "freetelecom.fr")) ((NIL NIL "nguyen.antoine" "wanadoo.fr")) NIL NIL NIL "<20061213193125.9DA0919AC@dgroup2-2.proxad.net>") ("text" "plain" ("charset" "iso-8859-1") NIL NIL "8bit" 1428 38 NIL ("inline" NIL) NIL NIL) 76 NIL ("inline" ("filename*" "ISO-8859-1\'\'%5B%49%4E%53%43%52%49%50%54%49%4F%4E%5D%20%52%E9%63%E9%70%74%69%6F%6E%20%64%65%20%76%6F%74%72%65%20%64%6F%73%73%69%65%72%20%64%27%69%6E%73%63%72%69%70%74%69%6F%6E%20%46%72%65%65%20%48%61%75%74%20%44%E9%62%69%74")) NIL NIL) "mixed" ("boundary" "------------040706080908000209030901") NIL NIL NIL) BODY[HEADER.FIELDS (DATE FROM TO CC SUBJECT)] {266}', + 'Date: Tue, 19 Dec 2006 19:50:13 +0100\r\nFrom: Antoine Nguyen \r\nTo: Antoine Nguyen \r\nSubject: [Fwd: [INSCRIPTION] =?ISO-8859-1?Q?R=E9c=E9ption_de_votre_?=\r\n =?ISO-8859-1?Q?dossier_d=27inscription_Free_Haut_D=E9bit=5D?=\r\n\r\n'), ')'] + print parse_fetch_response(resp) diff --git a/extensions/webmail/lib.py b/extensions/webmail/lib.py index 3051b9fc9..01cfb844a 100644 --- a/extensions/webmail/lib.py +++ b/extensions/webmail/lib.py @@ -117,7 +117,7 @@ class ImapListing(EmailListing): else: self.mbc.criterions = [] - EmailListing.__init__(self, **kwargs) + super(ImapListing, self).__init__(**kwargs) self.extravars["refreshrate"] = \ int(parameters.get_user(user, "REFRESH_INTERVAL")) * 1000 diff --git a/extensions/webmail/views.py b/extensions/webmail/views.py index efd69d86c..efc46993f 100644 --- a/extensions/webmail/views.py +++ b/extensions/webmail/views.py @@ -312,7 +312,9 @@ def listmailbox(request, defmailbox="INBOX"): set_nav_params(request) lst = ImapListing(request.user, request.session["password"], baseurl="?action=listmailbox&name=%s&" % mbox, - folder=mbox, **request.session["navparams"]) + folder=mbox, + elems_per_page=int(parameters.get_user(request.user, "MESSAGES_PER_PAGE")), + **request.session["navparams"]) request.session["mbox"] = mbox return lst.render(request, request.session["pageid"])