La synchronisation des e-mails externe ne fonctionne pas
#3
C'est effectivement un problème avec la librairie poplib de Python3 qui ne renvoie plus les résultats au format STRING mais au format BYTES.

J'ai fait quelques corrections dans le fichier creme_crm-2.1/creme/crudity/fetchers/pop.py pour prendre en compte cela :

Code :
--- pop.py.original     2020-05-04 15:15:03.707970859 +0200
+++ pop.py      2020-05-04 18:55:00.169877808 +0200
@@ -80,13 +80,13 @@
        for msg_info in messages:
            attachments = []

-            message_number, message_size = msg_info.split(' ')
-            r, raw_message_lines, message_size = client.retr(message_number)
+            message_number, message_size = msg_info.split()
+            r, raw_message_lines, message_size = client.retr(int(message_number))

-            out_str = '\n'.join(raw_message_lines)
-            out_str = re.sub(r'\r(?!=\n)', '\r\n', out_str)
+            out_str = b'\n'.join(raw_message_lines)
+            out_str = re.sub(br'\r(?!=\n)', b'\r\n', out_str)

-            email_message = email.message_from_string(out_str)
+            email_message = email.message_from_bytes(out_str)
            get_all = email_message.get_all

            to_emails   = [addr for name, addr in getaddresses(get_all('to', []))]
@@ -94,7 +94,7 @@
            cc_emails   = [addr for name, addr in getaddresses(get_all('cc', []))]

            subject = ''.join(s.decode(enc) if enc is not None else s
-                                for s, enc in email.Header.decode_header(email_message.get('subject', []))
+                                for s, enc in email.header.decode_header(email_message.get('subject', []))
                              )
 
             dates = [datetime(*parsedate(d)[:-3]) for d in get_all('date', []) if d is not None]                              

Cela semble fonctionner car je n'ai plus de logs d'erreur pour le fichier pop.py.
C'est quand même à regarder de près car je ne suis pas informaticien et c'est la première fois que je bidouille en python.

Par contre, j'ai l'erreur suivante :

Code :
[2020-05-04 19:27:25] ERROR   (-2.1/creme/creme_core/creme_jobs/base:114) creme.creme_core.creme_jobs.base : Document() got an unexpected keyword argument 'folder'
Traceback (most recent call last):
 File "/srv/www/creme_crm-2.1/creme/creme_core/creme_jobs/base.py", line 112, in execute
   self._execute(job)
 File "/srv/www/creme_crm-2.1/creme/crudity/creme_jobs.py", line 52, in _execute
   count = len(registry.crudity_registry.fetch(user))
 File "/srv/www/creme_crm-2.1/creme/crudity/registry.py", line 365, in fetch
   backend = _handle_data(fetcher_multiplex, data)
 File "/srv/www/creme_crm-2.1/creme/crudity/registry.py", line 353, in _handle_data
   default_backend.fetcher_fallback(data, user)
 File "/usr/lib/python3.7/contextlib.py", line 74, in inner
   return func(*args, **kwds)
 File "/srv/www/creme_crm-2.1/creme/emails/crudity_register.py", line 99, in fetcher_fallback
   filedata=path,
 File "/srv/www/Envs/creme_2_1/lib/python3.7/site-packages/django/db/models/manager.py", line 82, in manager_method
   return getattr(self.get_queryset(), name)(*args, **kwargs)
 File "/srv/www/Envs/creme_2_1/lib/python3.7/site-packages/django/db/models/query.py", line 420, in create
   obj = self.model(**kwargs)
 File "/srv/www/creme_crm-2.1/creme/creme_core/models/entity.py", line 109, in __init__
   super().__init__(*args, **kwargs)
 File "/srv/www/Envs/creme_2_1/lib/python3.7/site-packages/django/db/models/base.py", line 501, in __init__
   raise TypeError("%s() got an unexpected keyword argument '%s'" % (cls.__name__, kwarg))
TypeError: Document() got an unexpected keyword argument 'folder'

Je ne sais pas si c'est lié aux e-mails ou pas.

À première vue, ça ne semble pas lié au problème précédent.

Cependant, je n'ai toujours pas d'e-mails dans la fenêtre de Synchronisation des e-mails externes dans Creme. Sad
Crème CRM 2.4.2 sur Debian GNU/Linux 11 Bullseye avec Apache2 + WSGI
  Répondre


Messages dans ce sujet
RE: La synchronisation des e-mails externe ne fonctionne pas - par libresurf - 04-05-2020, 19:41

Atteindre :


Utilisateur(s) parcourant ce sujet : 3 visiteur(s)