Obscurcir mailto:foo@bar.com lors de l'importation d'archives de courrier

Bonjour,

Après une importation réussie d’archives de messagerie ( mbox ), le contenu des messages affichera des adresses e-mail qui auraient été masquées par Gmane ou le serveur d’archives mailman2. Cela permet aux robots de collecte d’adresses de les récupérer dans Discourse, et je cherche un moyen d’éviter cela.

  1. Supprimer globalement les adresses e-mail dans les publications (peut-être un plugin d’affichage ?)
  2. Un paramètre du site qui le fait déjà
  3. Une autre idée ?

Merci d’avance pour votre aide !

Pourquoi les adresses e-mail apparaîtraient-elles dans le contenu des messages ? Pouvez-vous donner un exemple ?

1 « J'aime »

Je vous enverrai un lien vers les publications accessibles au public en MP pour ne pas déclencher davantage les bots qu’ils ne le sont déjà :stuck_out_tongue:

Voici la version obfusquée du message :


Le 23 décembre 2010 14:05, [redacted] l <[redacted]@gmail.com](mailto:[redacted]@gmail.com)
mailto:[redacted]@gmail.com> a écrit :

Pour info, lorsqu’il y a des mises à jour, voici comment je procède

Il s’agit donc d’un problème lié à l’importation, qui (si vous en avez encore la possibilité) devrait être résolu pendant la phase d’importation. J’ai examiné votre forum et il est rempli de contenu corrompu (en-têtes d’e-mails, mauvais retraits) concernant les anciens e-mails qui n’ont pas été tronqués, mais aussi des e-mails qui sont des réponses les uns aux autres et qui ont été placés dans des sujets différents.

Soit vous avez activé show_trimmed_content (ici) lors de l’importation, soit le format de vos messages n’a pas été reconnu par le code de troncature des réponses (ici). Bien qu’il semble y avoir de nombreux autres problèmes également.

2 « J'aime »

Bonne hypothèse : j’ai effectivement défini show_trimmed_content à true, car le code de suppression des réponses coupe souvent plus que nécessaire. Cela ne se produit pas seulement dans les mbox importées, mais aussi quotidiennement avec les réponses par e-mail. Bien qu’il serait possible d’améliorer le coupeur, cela semblait être une lutte contre courant. Les utilisateurs de la messagerie envoient toujours (i) des e-mails au format étrange pour diverses raisons, et (ii) s’attendent à ce qu’ils soient affichés en intégralité.

Il y a effectivement d’autres problèmes dans l’import : il est loin d’être parfait. Bien que je serais ravi d’en discuter, ils ne constituent pas une préoccupation immédiate.

Puisqu’il semble que je n’aie pas manqué une option dans l’import qui aurait pu obscurcir les adresses e-mail, il ne reste apparemment que deux options :

  • Remplacer globalement le contenu des publications par quelque chose comme s/{email_regexp}/obfuscated/
  • Trouver ou écrire un plugin qui obscurcit le contenu affiché (convertisseur HTML ?) avec s/{email_regexp}/obfuscated/

Ou bien… suis-je parti dans la mauvaise direction ?

C’est la voie que je devrais suivre.

J’utiliserais regexp_replace de PostgreSQL pour remplacer toutes les adresses e-mail dans posts.raw et posts.cooked.

3 « J'aime »

Je vais le faire et publier le HOWTO dans ce sujet, merci pour le conseil !

:warning: Assurez-vous de sauvegarder Discourse avant d’essayer ce qui suit :warning:

Voici comment remplacer toutes les adresses e-mail dans les publications par [email_redacted]. L’expression régulière est assez limitée et risque d’en manquer certaines, mais je préfère une expression que je peux lire et comprendre lors de la modification du contenu de toutes les publications.

$ ./launcher enter app
/var/www/discourse# su - postgres -c psql
psql (13.2 (Debian 13.2-1.pgdg100+1))
Tapez "help" pour obtenir de l'aide.

postgres=# \c discourse
Vous êtes maintenant connecté à la base de données "discourse" en tant qu'utilisateur "postgres".
discourse=# \set re '[0-9a-z._%+-]+@[a-z0-9.-]+\\.[a-z]{2,64}'
discourse=# update posts set raw = regexp_replace(raw, :'re', '[email_redacted]', 'gi') where raw ~ :'re';
UPDATE 1
discourse=# update posts set cooked = regexp_replace(cooked, :'re', '[email_redacted]', 'gi') where cooked ~ :'re';
UPDATE 1