04-05-2020, 19:41
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 :
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 :
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.
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.
Crème CRM 2.4.2 sur Debian GNU/Linux 11 Bullseye avec Apache2 + WSGI