Project

General

Profile

Development #10805

expedition des annonces

Added by Serghei Mihai almost 8 years ago. Updated about 7 years ago.

Status:
Fermé
Priority:
Haut
Assignee:
Target version:
-
Start date:
03 May 2016
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:

Description

Une fois la date de publication atteinte l'annonce doit être envoyée aux utilisateurs souscrits via le transport correspondant


Files

Associated revisions

Revision afefedf4 (diff)
Added by Serghei Mihai almost 8 years ago

announces send command (#10805)

Ran as cron job every 5 minutes

History

#1

Updated by Serghei Mihai almost 8 years ago

Via une commande django qui serait lancée par une tâche cron

#2

Updated by Benjamin Dauvergne almost 8 years ago

Je me dis qu'on devrait utiliser ça http://python-emails.readthedocs.io/en/latest/ (https://pypi.python.org/pypi/emails):
  • utilise le backend de mail de Django
  • supporte inlining des CSS et des images
  • signature DKIM

Il faudrait pouvoir simplement définir des templates HTML Django qui utilisent des feuilles de style Django ainsi que images avec des URLs absolues et/ou des images venant des statiques.

Pour chaque URL d'image il faut remplacer l'URL relative vers /static/img/xxx.png par une image attachée ou un lien absolu vers le site corbo (il faut récupérer le hostname depuis le tenant en cours).

#3

Updated by Frédéric Péters almost 8 years ago

[...] par une image attachée

Oui, parce que des images extérieures ça va être bloqué par les MUA. (pour la réalisation, cf http://code.activestate.com/recipes/473810/).

#4

Updated by Serghei Mihai almost 8 years ago

Je ne connais pas beaucoup de MUA qui bloquent le contenu web et je pensais plutôt envoyer des mails plus legers, sans les statics inclus.

#5

Updated by Thomas Noël almost 8 years ago

Serghei Mihai a écrit :

Je ne connais pas beaucoup de MUA qui bloquent le contenu web

Aujourd'hui : tous.

#6

Updated by Benjamin Dauvergne almost 8 years ago

De toute façon la lib pointée gère tout ça, la discussion n'a pas lieu d'être, envoyons donc des fichiers attachés.

#7

Updated by Serghei Mihai almost 8 years ago

Yep.
Le répértoire contenant les images sera défini dans la variable SITE_BASE_DIR qui changera en fonction du tenant.

#8

Updated by Frédéric Péters almost 8 years ago

Pour les images, les fichiers "media/" de manière générale, il y a une API dans Django (https://docs.djangoproject.com/en/dev/ref/files/storage/), c'est ça qu'il faut utiliser, parce qu'on l'a déjà adapté pour gérer le multitenant.

#9

Updated by Frédéric Péters almost 8 years ago

announce "%s" delivered to %s destinations

C'est un peu exagéré, "delivered", on n'en sait rien, on sait juste que le SMTP local a avalé le mail.

if result.status_code == 250:

Si ce n'est pas le cas c'est que le serveur SMTP local a un gros soucis, ce serait quand même important de le logguer très fort. Et d'enregistrer les destinataires pour qui ça n'a pas fonctionné (ce qui pourra être utilisé, plus tard, pour réessayer).

mail_from=settings.CORBO_DEFAULT_FROM_EMAIL)

J'utiliserais le paramétrage qui existe déjà (DEFAULT_FROM_EMAIL).

#10

Updated by Benjamin Dauvergne almost 8 years ago

Au niveau des logs j'irai franco, une ligne par destinataire et par campagne ça ne me parait pas exagéré (niveau INFO), c'est un peu le but de l'outil.

#13

Updated by Benjamin Dauvergne almost 8 years ago

Il faudrait un test qui vérifie que la CSS et les images sont bien inlinés.

#14

Updated by Serghei Mihai almost 8 years ago

Avec tests pour les images et les CSS inline.

#15

Updated by Serghei Mihai almost 8 years ago

  • Status changed from En cours to Résolu (à déployer)

Acké par Benj par jabber.

commit c0214b3910d19b68e6158079f1654b03af9de7b1
Author: Serghei Mihai <smihai@entrouvert.com>
Date:   Fri May 6 17:21:56 2016 +0200

    announces send command (#10805)

#16

Updated by Frédéric Péters almost 8 years ago

Il ne manque pas une commande de management pour appeler l'envoi ?

#17

Updated by Frédéric Péters almost 8 years ago

  • Status changed from Résolu (à déployer) to En cours

Et aussi, les tests échouent dans jenkins.

#18

Updated by Serghei Mihai almost 8 years ago

Yep, à cause d'un patch j'ai proposé en upstream qui n'a pas encore été releasé sur pypi: https://github.com/smihai/python-emails/commit/6a2e6264f4048bd001b22b95f51980d6ac908d4f
Je modifie le setup pour récuperer la version de notre depot.

#19

Updated by Frédéric Péters almost 8 years ago

Et concernant :

Il ne manque pas une commande de management pour appeler l'envoi ?

#20

Updated by Serghei Mihai almost 8 years ago

Je vois cela fait par une tâche cron executée toutes les 5 minutes

#21

Updated by Serghei Mihai almost 8 years ago

Pour executer les tests avec la version de emails de notre depot.

#22

Updated by Frédéric Péters almost 8 years ago

Comme j'essayais de dire, il manque la commande de management (dont j'ai maintenant le nom, send_announces).

#24

Updated by Serghei Mihai almost 8 years ago

Au passage j'ai poussé le patch pour fixer les tests.

#25

Updated by Serghei Mihai almost 8 years ago

  • Status changed from En cours to Résolu (à déployer)

Et la commande d'envoi poussé:

commit 64278620f7c5012bde24e5d8c53adbf512525692
Author: Serghei Mihai <smihai@entrouvert.com>
Date:   Mon Jul 11 10:28:37 2016 +0200

    management command for announces send (#10805)

    Ran as cron job every 5 minutes

#26

Updated by Serghei Mihai about 7 years ago

  • Status changed from Résolu (à déployer) to Fermé

Also available in: Atom PDF