`enable_forwarded_emails` ne se comporte pas comme une redirection d'e-mails conventionnelle

enable_forwarded_emails is a great feature for bringing existing conversations into Discourse, but for users who approach Discourse with a “Mailman-mind” - as many users on our instance do - this feature just doesn’t do what they’re expecting it to.

Within every email client I’ve used, forwarding an email intentionally excludes the original email address from the forward, and subsequent replies. Whereas with this feature, that original email address is included in the created post and subsequent replies.

If this feature isn’t enabled, then Discourse strips the actual forwarded email, which also doesn’t work for us.

My thought is there should be an alternative feature which doesn’t strip the forwarded email and posts it like so:

Thought you all should see this:

---------- Forwarded message ---------
From: Example Person <person@example.com>
Date: Wed, 13 Mar 2019 at 15:11
Subject: An email to be forwarded
To: <some_discourse_user@example.com>

The original email

This would be a lot like the result of the always_show_trimmed_content setting, but with the trimmed content automatically expanded (and therefore visible in email notifications).

@zogstrip what are your thoughts here?

With just a little bit of rejigging of the code you’ve already written for enable_forwarded_emails I think what I want to see would be relatively easy - and that’s rejigging I’m happy to do.

Perhaps the solution here is to create a new multiple-choice site setting, something like:

forwarded_emails_behaviour:

  • hide (default)
  • show (the behaviour I’m advocating for here)
  • create_replies (the existing enable_forwarded_emails behaviour)
9 « J'aime »

I like that :+1:

PR at will :wink:

5 « J'aime »

Cela m’a pris un peu de temps, mais voici la PR :

8 « J'aime »

Actuellement, ce paramètre propose les options suivantes :

Je suppose donc que l’option « afficher » est devenue « citer » ?

Par ailleurs, je ne comprends pas tout à fait pourquoi l’autre option est appelée « créer des réponses ». Que signifie-t-elle ? (ou : que fait-elle ?)

Oui, car les deux autres options « affichent » l’e-mail transféré, mais celle-ci le cite dans le message d’origine.

C’est ce que dit le :canned_food:! Il tentera d’analyser l’e-mail transféré, puis créera un utilisateur temporaire à partir de l’expéditeur original de l’e-mail transféré, et publiera l’e-mail transféré comme sujet original, puis tout texte inclus par le transmetteur comme réponse à ce sujet (du moins, c’est ainsi que je me souviens que cela fonctionne).

4 « J'aime »

Ah, maintenant je comprends. C’est le texte inclus par le transmetteur qui devient la réponse ! Mais cela ne correspond qu’à une seule réponse. Pourquoi parle-t-il de créer des réponses ?

Une autre raison pour laquelle la terminologie est quelque peu confuse : tant « masquer » que « citer » se réfèrent au texte transféré, tandis que « créer des réponses » se réfère au commentaire du transmetteur sur le texte transféré. Ainsi, ces options pourraient peut-être être clarifiées en disant :

  • masquer l’e-mail transféré
  • citer l’e-mail transféré
  • publier l’e-mail transféré avec des réponses

En écrivant, je me demande si cette troisième option correspond vraiment au fonctionnement réel. Je ne pense pas que cela ait jamais fonctionné ainsi pour nous, mais d’un autre côté, nous ne recevons pas beaucoup d’e-mails transférés, donc je ne suis pas sûr. Est-ce même logique de publier le commentaire du transmetteur sous forme de réponse ? Ne faudrait-il pas clarifier que l’e-mail transféré a été publié par le transmetteur ? Ce n’est absolument pas clair lorsque le transmetteur semble y répondre lui-même.

3 « J'aime »

J’utilise donc le paramètre de citation et cela ne fonctionne clairement pas comme décrit. Peut-être que je comprends toujours mal le comportement attendu, mais cela semble assez clair :

et ce n’est pas ce que j’obtiens. Laissez-moi donc être plus précis sur ce que j’obtiens : quelqu’un a transféré un e-mail commençant par une courte note du type « Regardez ça », suivie de l’e-mail transféré. L’e-mail transféré comprenait du texte ainsi que deux fichiers PDF en pièces jointes. Le message affiché sur le forum ressemblait à ceci :

Regardez ça !
Cordialement,
Sara

document1.pdf
document2.pdf

C’était tout.

Ainsi, l’e-mail transféré a été complètement supprimé, à l’exception des pièces jointes. J’ai pu le récupérer manuellement et il commençait même par ---------- Message transféré ---------, ce qui rendait son identification très simple…

Hmm, je me demande si les pièces jointes ne posent pas problème ici. Voici comment elles s’affichent (correctement) pour moi : https://discourse-dev.itsre-apps.mozit.cloud/t/fwd-email-to-site-feedback-support/24

3 « J'aime »

D’accord, cela ressemble exactement à ce que j’attendais. C’est bien de voir que cela fonctionne au moins dans certaines circonstances. Mais votre e-mail contenait-il une pièce jointe ? Si non, il semble plausible que Discourse soit perturbé par (certaines ?) pièces jointes.

Je rencontre toujours des problèmes avec l’affichage des e-mails transférés. Comme j’ai au moins un e-mail avec des pièces jointes qui a été correctement rendu, je pense maintenant que cela dépend de savoir si la personne qui a transféré l’e-mail a ajouté quelque chose ou non. D’après ce que je vois, les e-mails transférés sans ajout de texte au-dessus du message transféré sont rendus correctement, mais si le transmetteur ajoute quelque chose comme « FYI », seules les pièces jointes sont incluses dans le message, et non le texte de l’e-mail transféré.

Autrement dit, cet exemple ne fonctionne toujours pas (car il inclut « Pensez que vous devriez tous voir ceci : ») :

Au lieu du résultat ci-dessus, cet e-mail serait rendu ainsi :

Pensez que vous devriez tous voir ceci :

Et rien d’autre.

Quelqu’un pourrait-il confirmer si ce problème est spécifique à mon instance ou s’il existe ailleurs ?

Veuillez vérifier en particulier les e-mails avec une pièce jointe (par exemple un fichier PDF), car il est possible que le problème ne se produise que lorsque du texte est ajouté ET qu’il y a une pièce jointe.

Je suis aussi toujours confus quant à la fonction de ces différents libellés/fonctionnalités — je tente de configurer les emails entrants pour les utiliser avec le Plugin Tickets :tickets:, mais je rencontre un comportement incohérent.

J’ai l’impression que le comportement par défaut devrait être que tout ce qui est transféré devient un post de l’utilisateur (stagiare ou régulier) qui a créé le message. La raison pour laquelle il est transféré semble le plus souvent être que quelqu’un qui a reçu le message a estimé qu’il serait mieux traité sur Discourse, ce qui rend ce sujet plus approprié pour être initié par l’auteur de l’email, et non par celui qui le transfère.

(Mais peut-être que mes cas d’usage sont en réalité des cas particuliers…)

Cela devrait fonctionner ainsi lorsque vous définissez enable_forwarded_emails sur create_replies. L’e-mail transféré deviendra le premier message, et il générera une réponse si la personne qui effectue le transfert a écrit du texte. Sinon, un petit message d’action sera créé, afin qu’il soit clair qui a transféré le premier message.

2 « J'aime »

OK, donc je pense que j’apprends enfin :

Si create_replies est la valeur choisie pour le paramètre de site forwarded emails behaviour, alors le message d’origine devient le premier post du sujet, et tout ce qui est écrit dans l’e-mail au-dessus du message transféré devient une réponse au sujet, en dessous du message du tiers. :confused:

Q : Est-ce que les autres valeurs de ce paramètre de site — à savoir hide ou quote — ne traitent que le message original du tiers et rien d’autre ?

Je me demande si la tentative de séparer ces “create replies” pourrait être la cause de certaines erreurs étranges que j’ai observées lors de l’envoi depuis un client Microsoft Outlook.

PS : Je me demande si ce paramètre ne mériterait pas une entrée FAQ/tutoriel à lier depuis le texte de description situé sous le paramètre de site. Ce n’est peut-être que moi, mais je n’ai jamais été aussi confus par un paramètre Discourse au cours des 7 dernières années. Ou peut-être ai-je juste besoin de plus de :coffee: :smile:

Non. Vous obtiendrez un petit message d’action lorsqu’il n’y a pas de texte avant le message transféré.

Je pense que cette fonctionnalité est toujours marquée comme expérimentale et qu’il y a une bonne raison à cela. Les e-mails sont généralement transférés en ligne. Cela rend l’extraction de l’e-mail transféré assez difficile, car chaque client transfère les en-têtes de l’e-mail original différemment. Certains cachent même l’adresse e-mail de l’en-tête From original ou utilisent des en-têtes localisés.

Cela devrait fonctionner beaucoup mieux lorsque les e-mails sont transférés en pièce jointe plutôt qu’en ligne (je suis à 99 % sûr que Discourse prend en charge cela).

1 « J'aime »

Je serais d’accord pour dire que ce serait un moyen beaucoup plus propre d’assurer un traitement correct. Je me demande pourquoi je ne parviens pas à faire en sorte que Discourse traite les pièces jointes lorsque je le fais. (Le contenu de la pièce jointe transférée apparaît dans le contenu brut associé au message, mais seule la « commentary » est rendue, pas l’original transféré. Encore une fois, du moins pour MS Outlook ; je devrai essayer d’autres clients.)

1 « J'aime »

Peut-être que ce n’est pas implémenté, après tout ? Je n’ai pas encore regardé le code. :blush:
Veuillez me tenir au courant si cela fonctionne avec d’autres clients.

1 « J'aime »

Les messages transférés en ligne sont tronqués, que les modes quote et create_replies soient activés.

Des suggestions ?

Message original (certains en-têtes supprimés) :

De : Jeffrey Lastname <jeff@myemail.us>
À : test-cat@example.org
Objet : Fwd : Merci pour votre soutien !
X-Mailer : MailMate (1.14r5745)
Content-Type : text/plain; format=flowed

Un très long texte d'exemple.

Message transféré :

> De : Équipe des dons <giving@example2.org>
> À : jeff@myemail.us
> Objet : Merci pour votre soutien !
>
> Cher Jeffrey,
>
> Nos remerciements les plus sincères pour votre don à Example Project,
> surtout en ce moment. Ensemble, nous écrirons l'avenir.

Message affiché sur le forum (identique dans les deux modes) :

Un très long texte d'exemple.

Message transféré :

La transmission du message en pièce jointe ne semble pas fonctionner non plus. Les pièces jointes eml sont rejetées. Si les pièces jointes eml sont autorisées, alors en mode “create_replies”, elle joint le fichier eml et le visiteur du forum a la possibilité de le télécharger.

Existe-t-il un moyen d’afficher le message e-mail transféré dans les notifications par e-mail ?

Avec

  • forwarded_emails_behaviour défini sur “quote” et

  • always_show_trimmed_content activé,

notre site Discourse (2.6.0, stable) affiche l’e-mail transféré exactement comme souhaité, dès que je clique sur les trois points :

Cependant, la notification par e-mail omet complètement l’e-mail transféré :

1 « J'aime »