`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

Atualmente, essa configuração tem as seguintes opções disponíveis:

Então, suponho que a opção “mostrar” tenha se tornado “citar”?

Além disso, não entendo muito bem por que a outra opção é chamada de “criar respostas”. O que isso significa? (ou: o que ela faz?)

Sim, pois as outras duas opções também “mostram” o e-mail encaminhado, mas esta a cita na postagem original.

O que está escrito no :canned_food:! Ela tentará analisar o e-mail encaminhado, criar um usuário temporário a partir do remetente original do e-mail encaminhado e publicar o e-mail encaminhado como o tópico original; qualquer texto incluído pelo remetente do encaminhamento será publicado como uma resposta a esse tópico (pelo menos é assim que me lembro de ter funcionado).

4 curtidas

Aah, agora entendi. É o texto que o encaminhador inclui que se torna a resposta! Mas isso é exatamente uma resposta. Por que diz criar respostas?

Outra razão pela qual a terminologia é um tanto confusa: tanto “ocultar” quanto “citar” referem-se ao texto encaminhado, mas “criar respostas” refere-se ao comentário do encaminhador sobre o texto encaminhado. Então, talvez essas opções pudessem ser esclarecidas de alguma forma dizendo:

  • ocultar e-mail encaminhado
  • citar e-mail encaminhado
  • publicar e-mail encaminhado com respostas

Enquanto escrevo, estou me perguntando se essa terceira opção é realmente como funciona. Não acho que isso já tenha se comportado assim para nós, mas, por outro lado, não temos muitos e-mails encaminhados, então não tenho certeza. Faz sentido postar o comentário do encaminhador como uma resposta? Não deveria ficar claro de alguma forma que o e-mail encaminhado foi postado pelo encaminhador? Isso não fica nada claro quando o encaminhador aparentemente responde a ele.

3 curtidas

Então, estou usando a configuração de citação e ela definitivamente não funciona como descrito. Talvez eu ainda esteja entendendo mal o comportamento pretendido, mas isso parece bem claro:

e isso não é o que estou recebendo. Então, deixe-me ser mais preciso sobre o que estou recebendo: alguém encaminhou um e-mail começando com uma nota curta como “Olhem isso”, seguida pelo e-mail encaminhado. O e-mail encaminhado incluía texto e dois arquivos PDF como anexos. A postagem exibida no fórum apareceu assim:

Olhem isso!
Abraços,
Sara

document1.pdf
document2.pdf

Isso foi tudo.

Portanto, o e-mail encaminhado foi completamente removido, exceto pelos anexos de arquivo. Consegui recuperá-lo manualmente e ele até começava com ---------- Mensagem encaminhada ---------, então identificá-lo não poderia ter sido mais fácil…

Hmm, me pergunto se os anexos estão causando problemas aqui. É assim que eles aparecem (corretamente) para mim: https://discourse-dev.itsre-apps.mozit.cloud/t/fwd-email-to-site-feedback-support/24

3 curtidas

Ok, isso parece exatamente como eu esperava. É bom ver que funciona pelo menos em certas circunstâncias. Mas seu e-mail incluía um anexo? Se não, parece plausível que o Discourse esteja confuso devido a (certos?) anexos.

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