`enable_forwarded_emails` doesn't behave like conventional email forwarding

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개의 좋아요

I like that :+1:

PR at will :wink:

5개의 좋아요

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

https://github.com/discourse/discourse/pull/7935

8개의 좋아요

현재 이 설정에는 다음 옵션들이 있습니다:

그러니까 “show” 옵션이 "quote"가 된 건가요?

또한, 다른 옵션이 "create replies"라고 불리는 이유를 잘 모르겠습니다. 이것이 무엇을 의미하나요? (또는: 무엇을 하나요?)

네, 다른 두 옵션도 모두 전달된 이메일을 ‘표시’하지만, 이 옵션은 원래 게시물에 인용하는 방식이기 때문입니다.

패키지 설명에 나와 있잖아요! 전달된 이메일을 파싱한 후, 원래 발신자를 기반으로 임시 사용자를 생성하고, 전달된 이메일을 원래 주제로 게시한 다음, 전달자가 포함시킨 텍스트를 해당 주제에 대한 답변으로 게시합니다 (적어도 제가 기억하는 작동 방식은 그렇습니다).

4개의 좋아요

아, 이제 이해가 됩니다. 포워더가 포함하는 텍스트가 답글이 되는 거군요! 하지만 그것은 정확히 하나의 답글입니다. 왜 답글들을 생성한다고 하는 걸까요?

용어가 다소 혼란스러운 또 다른 이유: “hide”(숨김)와 “quote”(인용)는 모두 포워딩된 텍스트를 가리키지만, “create replies”(답글 생성)는 포워더가 포워딩된 텍스트에 대해 작성한 코멘트를 가리킵니다. 그래서 이 옵션들을 다음과 같이 명확히 할 수 있을 것 같습니다.

  • 포워딩된 이메일 숨김
  • 포워딩된 이메일 인용
  • 답글과 함께 포워딩된 메일 게시

이렇게 쓰면서, 세 번째 옵션이 실제로 그렇게 작동하는지 궁금해집니다. 우리에게는 그렇게 작동한 적이 없는 것 같지만, 다시 말하지만 우리는 포워딩된 메일이 많지 않아서 확신할 수 없습니다. 포워더의 코멘트를 답글로 게시하는 것이 실제로 의미가 있을까요? 포워딩된 이메일이 포워더에 의해 게시되었음이 어딘가에서 명확히 표시되지 않는다면, 포워더가 그 메일에 답글을 남기는 것처럼 보이는 상황에서 이는 전혀 명확하지 않습니다.

3개의 좋아요

저는 quote 설정을 사용 중인데, 설명대로 작동하지 않습니다. 의도된 동작 방식을 아직 잘못 이해하고 있는 건지 모르겠지만, 이건 꽤 명확해 보입니다:

그런데 제가 실제로 받는 결과는 이와 다릅니다. 제가 실제로 무엇을 받는지 더 정확히 설명하겠습니다. 누군가가 "Look at this"와 같은 짧은 메모로 시작하는 이메일을 전달했고, 그 뒤에 전달된 이메일이 이어졌습니다. 전달된 이메일에는 텍스트와 두 개의 PDF 파일 첨부 파일이 포함되어 있었습니다. 포럼에 표시된 게시물은 다음과 같았습니다:

Look at this!
Cheers,
Sara

document1.pdf
document2.pdf

그게 전부였습니다.

즉, 첨부 파일 제외하고 전달된 이메일이 완전히 제거되었습니다. 저는 수동으로 이를 복구할 수 있었고, 심지어 ---------- Forwarded message ---------로 시작했기 때문에 식별하는 것이 더 쉬울 수 없었습니다…

음, 첨부 파일이 여기서 문제를 일으키고 있는 건 아닌지 궁금하네요. 제 환경에서는 이렇게 (정상적으로) 표시됩니다: https://discourse-dev.itsre-apps.mozit.cloud/t/fwd-email-to-site-feedback-support/24

3개의 좋아요

음, 그것은 제가 예상한 것과 정확히 일치하네요. 적어도 특정 상황에서는 작동한다는 것을 확인하게 되어 좋습니다. 그런데 이메일에 첨부 파일이 포함되어 있었나요? 만약 첨부 파일이 없다면, Discourse가 (특정) 첨부 파일에 의해 혼란을 겪고 있는 것으로 보입니다.

전달된 메일이 표시되지 않는 문제를 여전히 겪고 있습니다. 첨부파일이 있는 메일 중 올바르게 렌더링된 것이 적어도 하나 있으므로, 이제 제 추측은 메일을 전달한 사람이 메일에 내용을 추가했는지에 따라 달라지는 것 같습니다. 제가 볼 때, 전달된 메일 위에 아무 텍스트도 추가하지 않고 전달된 메일은 올바르게 렌더링되었지만, "참고하세요(FYI)"와 같은 내용을 전달자가 추가한 경우 게시글에는 첨부파일만 포함되고 전달된 메일의 텍스트는 포함되지 않았습니다.

즉, 이 예제는 여전히 작동하지 않습니다(이 예제에는 "모두가 이것을 봐야 할 것 같아서:"라는 문장이 포함되어 있기 때문이죠):

위와 같은 결과가 아니라, 이 메일은 다음과 같이 렌더링됩니다:

모두가 이것을 봐야 할 것 같아서:

그리고 그 외에는 아무것도 없습니다.

누군가 이 문제가 제 인스턴스에 국한된 것인지, 아니면 다른 곳에서도 존재하는지 확인해 주실 수 있을까요?

특히 첨부파일(예: PDF 파일)이 있는 메일을 확인해 주십시오. 텍스트가 추가되고 첨부파일도 있는 경우에만 문제가 발생하는 것이 가능하기 때문입니다.

저도 이 서로 다른 라벨/기능들이 각각 어떤 역할을 하는지 여전히 혼란스럽습니다 – Tickets 플러그인 :tickets:과 함께 사용할 수 있도록 수신 이메일을 설정하려는데, 일관되지 않은 동작을 겪고 있습니다.

기본 동작은 메시지 작성자(승인 대기 상태나 일반 사용자)가 보낸 메시지가 포워딩되면, 해당 사용자가 작성한 게시글로 생성되는 것이어야 한다고 생각합니다. 포워딩되는 이유는 대개 메시지를 받은 사람이 해당 내용을 Discourse에서 다루는 것이 더 적합하다고 판단해서인 것 같은데, 그렇다면 그 주제에 대한 게시글은 포워딩한 사람이 아니라 이메일 작성자가 시작하는 것이 가장 적절해 보입니다.

(하지만 제 사용 사례가 실제로는 예외적인 경우일 수도 있겠죠…)

enable_forwarded_emails를 create_replies로 설정하면 그렇게 작동해야 합니다. 전달된 이메일이 첫 번째 게시물이 되며, 전달자가 텍스트를 작성한 경우 답글을 생성합니다. 그렇지 않으면 첫 번째 게시물을 누가 전달했는지 명확히 알 수 있도록 작은 작업 게시물을 생성합니다.

2개의 좋아요

OK, 드디어 이해가 가는 것 같습니다 –

create_replies가 forwarded emails behaviour 사이트 설정의 선택된 값이라면, 원본 메시지가 토픽의 첫 번째 게시물이 되고, 전달된 메시지 위쪽에 작성된 내용은 제3자 메시지 아래에 토픽에 대한 답글로 생성됩니다. :confused:

질문: 이 사이트 설정의 다른 값들, 즉 hide 또는 quote는 오직 원본 제3자 메시지만 처리하고 나머지는 무시합니까?

Microsoft Outlook 클라이언트로 메시지를 가져올 때 확인되고 있는 이상한 오류들의 원인이 이 “create replies” 분리가 아닐까 궁금합니다.

P.S. 이 설정에 대해 사이트 설정 설명 텍스트에서 링크할 수 있는 FAQ/가이드 항목을 만드는 것이 가치가 있을 것 같습니다. 지난 7년간 이렇게 Discourse 설정 때문에 혼란을 겪은 적은 처음입니다. 아니면 제가 더 :coffee: :smile:가 필요한 걸까요?

아니요. 전달된 메시지 앞에 텍스트가 없으면 작은 액션 게시글이 생성됩니다.

이 기능이 여전히 실험적(experimental)으로 표시되어 있는 데에는 그만한 이유가 있다고 생각합니다. 이메일은 보통 인라인으로 전달됩니다. 각 클라이언트가 오리지널 이메일 헤더를 다르게 전달하기 때문에 전달된 이메일을 추출하는 것이 꽤 어렵습니다. 일부 클라이언트는 오리지널 From 헤더의 이메일 주소를 숨기거나 지역화된 헤더를 사용하기도 합니다.

이메일을 인라인이 아니라 첨부파일로 전달할 경우 훨씬 잘 작동해야 합니다(Discourse가 이를 지원한다는 데 99% 확신이 있습니다).

1개의 좋아요

올바른 처리를 보장하는 훨씬 더 깔끔한 방법이라고 동의합니다. 제가 그렇게 할 때 디스코스가 왜 첨부 파일을 처리하지 못하는지 궁금합니다. (전달된 첨부 파일의 내용은 게시물에 태그된 원본 콘텐츠로 전달되지만, '코멘트’만 렌더링되고 전달된 원본은 렌더링되지 않습니다. 다시 말해, 적어도 MS 아웃룩의 경우입니다. 다른 클라이언트를 시도해 봐야 할 것 같습니다.)

1개의 좋아요

아직 구현이 안 된 건 아닐까요? 아직 코드를 확인하지 못했습니다. :blush:
다른 클라이언트에서도 동작하는지 확인해 주시면 알려주세요.

1개의 좋아요

인라인로 전달된 메시지가 잘리는 문제가 발생하고 있습니다. quote와 create_replies 모드 모두 활성화된 상태입니다.

제안이 있을까요?

원본 메시지(일부 헤더 제거됨):

From: Jeffrey Lastname <jeff@myemail.us>
To: test-cat@example.org
Subject: Fwd: Thank you for your support!
X-Mailer: MailMate (1.14r5745)
Content-Type: text/plain; format=flowed

Some really long sample text.

Forwarded message:

> From: Donations Team <giving@example2.org>
> To: jeff@myemail.us
> Subject: Thank you for your support!
>
> Dear Jeffrey,
>
> Our heartfelt thanks for your donation to Example Project, 
> especially now. Together we will write the future.

포럼 게시판의 메시지(두 모드 모두 동일):

Some really long sample text.

Forwarded message:

메시지를 첨부파일로 전달하는 것도 작동하지 않는 것 같습니다. eml 첨부파일은 거부됩니다. eml 첨부파일이 허용된다면, “create_replies” 모드에서는 eml 파일이 첨부되고 포럼 방문자는 이를 다운로드할 수 있는 옵션을 갖게 됩니다.

이메일 알림에 전달된 이메일 메시지를 표시할 수 있는 방법이 있을까요?

  • forwarded_emails_behaviour를 "quote"로 설정하고
  • always_show_trimmed_content를 on으로 설정했을 때,

저희 디스코urs 웹사이트(2.6.0, stable)에서는 세 점을 클릭하면 전달된 이메일이 원하는 대로 표시됩니다:

하지만 이메일 알림에서는 전달된 이메일이 완전히 생략됩니다:

1개의 좋아요