`enable_forwarded_emails` não se comporta como o encaminhamento de e-mail convencional

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 curtidas

I like that :+1:

PR at will :wink:

5 curtidas

It took me a little while, but here’s the PR:

8 curtidas

Currently, this setting has these options available:

So I suppose the “show” option became “quote”?

Also, I don’t quite get why the other option is called “create replies”. What does it mean? (or: what does it do?)

Yep, as both other options “show” the forwarded email, but this one quotes in in the original post.

What it says on the :canned_food:! It’ll attempt to parse the forwarded email, then create a staged user from the original sender of the forwarded email, and post the forwarded email as the original topic and then any text the forwarder includes as a reply to that topic (at least that’s the way round I remember it working).

4 curtidas

Aah, now I get it. It’s the text that the forwarder includes that becomes the reply! But that’s exactly one reply. Why does it say create replies?

Another reason why the terminology is somewhat confusing: both “hide” and “quote” refer to the forwarded text but “create replies” refers to the forwarders commentary om the forwarded text. So perhaps these options could be clarified somehow by saying

  • hide forwarded email
  • quote forwarded email
  • post forwarded mail with replies

As I write, I’m wondering whether this third option is really how it works. I don’t think it ever behaved like that for us but then again we don’t have a lot of forwarded mails, so I’m not sure. Does it even make sense to post the forwarders comment as a reply? Shouldn’t it somehow be made clear that the forwarded email was posted by the forwarder? This is not at all clear when you have the forwarder apparently reply to it.

3 curtidas

So I’m using the quote setting and it definitely doesn’t work as described. Maybe I’m still misunderstanding the intended behaviour but this seems pretty clear:

and this is not what I’m getting. So let me be mote precise in what I’m getting: someone forwarded an email starting with a short note like “Look at this” followed by the forwarded email. The forwarded email included text as well as two pdf files as attachments. The post shown on the forum looked like this:

Look at this!
Cheers,
Sara

document1.pdf
document2.pdf

That was all.

So the forwarded email was completely stripped with the exception of the file attachments. I was able to recover it manually and it even started with ---------- Forwarded message --------- so identifying it could not have been easier…

Hmm, I wonder if the attachments are messing things up here. This is how they (correctly) appear for me: Fwd: email to site-feedback.support - Support - Mozilla Discourse Dev

3 curtidas

Okay, that looks just like I’d expect it. Good to see that it works at least under certain circumstances. But did your email include an attachment? If not, it seems plausible that discourse is confused by (certain?) attachments.

Ainda estou com problemas na exibição de e-mails encaminhados. Como tenho pelo menos um e-mail com anexos que foi renderizado corretamente, minha suposição agora é que isso tem a ver com o fato de a pessoa que encaminhou o e-mail ter adicionado algo a ele ou não. Pelo que posso ver, e-mails encaminhados sem adicionar nenhum texto acima do e-mail original foram renderizados corretamente, mas se quem encaminhou adicionou algo como “FYI”, apenas os anexos são incluídos na postagem, e não o texto do e-mail encaminhado.

Em outras palavras, este exemplo ainda não funciona (porque inclui “Achei que todos deveriam ver isso:”):

Em vez do resultado acima, este e-mail seria renderizado como:

Achei que todos deveriam ver isso:

E nada mais.

Alguém poderia confirmar se esse problema é específico da minha instância ou se também ocorre em outros lugares?

Por favor, verifique especialmente e-mails com anexos (por exemplo, um arquivo PDF), pois é possível que o problema ocorra apenas quando há texto adicionado E um anexo presente.

Eu também ainda estou confuso sobre o que esses diferentes rótulos/recursos fazem — estou tentando configurar o recebimento de e-mails para usar com o Plugin de Tickets :tickets:, mas estou obtendo comportamento inconsistente.

Sinto que o comportamento padrão deveria ser que qualquer coisa encaminhada se torne uma postagem feita pelo usuário (estagiário ou regular) que criou a mensagem. A razão pela qual está sendo encaminhada parece ser, na maioria das vezes, que alguém que recebeu a mensagem achou que seria melhor tratá-la no Discourse, então parece mais apropriado que o tópico seja iniciado pelo autor do e-mail, e não por quem o encaminhou.

(Mas talvez meus casos de uso sejam realmente casos extremos…)

Isso deve funcionar assim quando você define enable_forwarded_emails como create_replies. O e-mail reencaminhado será a primeira postagem e cria uma resposta se o reencaminhador escreveu algum texto. Caso contrário, cria uma pequena postagem de ação, para que fique claro quem reencaminhou a primeira postagem.

2 curtidas

Ok, então acho que finalmente estou entendendo –

Se create_replies for o valor escolhido para a configuração do site forwarded emails behaviour, a mensagem original se torna a postagem inicial no tópico, e qualquer coisa escrita no e-mail acima da mensagem encaminhada se torna uma resposta ao tópico abaixo da mensagem de terceiros. :confused:

P: Algum dos outros valores dessa configuração do site — a saber, hide ou quote — processa apenas (somente) a mensagem original de terceiros e nada mais?

Estou me perguntando se a tentativa de separar esses “create replies” pode ser a causa de alguns erros estranhos que tenho visto ao enviar coisas a partir de um cliente Microsoft Outlook.

PS: Será que essa configuração vale a pena ter uma entrada de FAQ/como-fazer, linkada a partir do texto de descrição abaixo da configuração do site? Pode ser só comigo, mas raramente fiquei tão confuso com uma configuração do Discourse nos últimos 7 anos. Ou talvez eu só precise de mais :coffee: :smile:

Não. Você receberá uma pequena postagem de ação quando não houver texto antes da mensagem encaminhada.

Acredito que esse recurso ainda esteja marcado como experimental e há um bom motivo para isso. Os e-mails geralmente são encaminhados inline. Isso torna bastante difícil extrair o e-mail encaminhado, pois cada cliente encaminha os cabeçalhos do e-mail original de forma diferente. Alguns até ocultam o endereço de e-mail do cabeçalho From original ou usam cabeçalhos localizados.

Deve funcionar muito melhor quando os e-mails são encaminhados como anexos em vez de inline (tenho 99% de certeza de que o Discourse suporta isso).

1 curtida

Concordo que seria uma maneira muito mais limpa de garantir o processamento correto. Estou me perguntando por que não consigo fazer o Discourse processar os anexos quando faço isso. (O conteúdo do anexo encaminhado aparece no conteúdo bruto marcado na postagem, mas apenas o “comentário” é renderizado, não o original encaminhado. Novamente, pelo menos para o MS Outlook; terei que testar outros clientes.)

1 curtida

Talvez não tenha sido implementado, afinal? Ainda não olhei o código. :blush:
Por favor, nos avise se funcionar com outros clientes.

1 curtida

Mensagens reencaminhadas em linha estão sendo cortadas, com os modos quote e create_replies ativados.

Alguma sugestão?

Mensagem original (alguns cabeçalhos removidos):

De: Jeffrey Lastname <jeff@myemail.us>
Para: test-cat@example.org
Assunto: Fwd: Obrigado pelo seu apoio!
X-Mailer: MailMate (1.14r5745)
Content-Type: text/plain; format=flowed

Algum texto de exemplo realmente longo.

Mensagem reencaminhada:

> De: Equipe de Doações <giving@example2.org>
> Para: jeff@myemail.us
> Assunto: Obrigado pelo seu apoio!
>
> Prezado Jeffrey,
>
> Nosso sincero agradecimento pela sua doação ao Projeto Exemplo,
> especialmente agora. Juntos escreveremos o futuro.

Mensagem no fórum (igual para ambos os modos):

Algum texto de exemplo realmente longo.

Mensagem reencaminhada:

Encaminhar a mensagem como anexo também não parece funcionar. Anexos eml são rejeitados. Se anexos eml estiverem autorizados, então no modo “create_replies”, ele anexa o eml e o visitante do fórum tem a opção de baixá-lo.

Existe alguma maneira de fazer com que as notificações por e-mail exibam a mensagem de e-mail encaminhada?

Com

  • forwarded_emails_behaviour definido como “quote” e

  • always_show_trimmed_content definido como ativado,

nosso site Discourse (versão 2.6.0, estável) exibe o e-mail encaminhado exatamente como desejamos, assim que clico nos três pontos:

No entanto, a notificação por e-mail omite completamente o e-mail encaminhado:

1 curtida