Projet

Général

Profil

Development #10805

expedition des annonces

Ajouté par Serghei Mihai il y a presque 8 ans. Mis à jour il y a environ 7 ans.

Statut:
Fermé
Priorité:
Haut
Assigné à:
Version cible:
-
Début:
03 mai 2016
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

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


Fichiers

Révisions associées

Révision afefedf4 (diff)
Ajouté par Serghei Mihai il y a presque 8 ans

announces send command (#10805)

Ran as cron job every 5 minutes

Historique

#1

Mis à jour par Serghei Mihai il y a presque 8 ans

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

#2

Mis à jour par Benjamin Dauvergne il y a presque 8 ans

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

Mis à jour par Frédéric Péters il y a presque 8 ans

[...] 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

Mis à jour par Serghei Mihai il y a presque 8 ans

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

Mis à jour par Thomas Noël il y a presque 8 ans

Serghei Mihai a écrit :

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

Aujourd'hui : tous.

#6

Mis à jour par Benjamin Dauvergne il y a presque 8 ans

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

Mis à jour par Serghei Mihai il y a presque 8 ans

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

#8

Mis à jour par Frédéric Péters il y a presque 8 ans

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

Mis à jour par Frédéric Péters il y a presque 8 ans

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

Mis à jour par Benjamin Dauvergne il y a presque 8 ans

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

Mis à jour par Benjamin Dauvergne il y a presque 8 ans

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

#14

Mis à jour par Serghei Mihai il y a presque 8 ans

Avec tests pour les images et les CSS inline.

#15

Mis à jour par Serghei Mihai il y a presque 8 ans

  • Statut changé de En cours à 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

Mis à jour par Frédéric Péters il y a presque 8 ans

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

#17

Mis à jour par Frédéric Péters il y a presque 8 ans

  • Statut changé de Résolu (à déployer) à En cours

Et aussi, les tests échouent dans jenkins.

#18

Mis à jour par Serghei Mihai il y a presque 8 ans

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

Mis à jour par Frédéric Péters il y a presque 8 ans

Et concernant :

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

#20

Mis à jour par Serghei Mihai il y a presque 8 ans

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

#21

Mis à jour par Serghei Mihai il y a presque 8 ans

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

#22

Mis à jour par Frédéric Péters il y a presque 8 ans

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

#24

Mis à jour par Serghei Mihai il y a presque 8 ans

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

#25

Mis à jour par Serghei Mihai il y a presque 8 ans

  • Statut changé de En cours à 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

Mis à jour par Serghei Mihai il y a environ 7 ans

  • Statut changé de Résolu (à déployer) à Fermé

Formats disponibles : Atom PDF