This site sends emails with the wrong Content-Type (for the Community Blog integration)

I do not see a setting in my profile to adjust this, but emails I get from discussion.fedoraproject.org posts come to my inbox formatted as HTML in the message body but contain

Content-Type: text/plain; charset=UTF-8

In the header. This causes display problems on my end and it would be nice if Discourse could send either plain text email or the correct Content-Type identifier. In this case, text/html.

Has anyone else seen this?

Yes, repeatedly,

Afaik, Discourse sends each mail with two content types.

You can see it in the original text of the e-mail, there is a text version AND HTML version of the same content.

.... common headers

Content-Type: multipart/alternative; boundary="--==_mimepart_62e4dbde643d4_8e74d3d3c103544d3"

----==_mimepart_62e4dbde643d4_8e74d3d3c103544d3
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

.... text content

----==_mimepart_62e4dbde643d4_8e74d3d3c103544d3
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html><html xmlns=3D"http://www.w3.org/1999/xhtml" lang=3D"en" xml=
:lang=3D"en"><head>

.... rest of the html content

</body></html>
----==_mimepart_62e4dbde643d4_8e74d3d3c103544d3--

And my assumption is that the mail client supposed to choose which part to display and then skip the other part.

Can you check that both entries of the “Content-type” header are present in your mail?

So things appear a bit more complicated. The emails I get for this thread do display correctly, but larger announcements do not display correctly.

I have confirmed that both types of messages send both text/plain and text/html formats, but the ordering is not the same. Because of how I had .muttrc configured, the project announcement emails were favoring text/plain and it looked wrong. I have fixed my .muttrc and things are fine now.

That said, the text/plain variant of these messages looks completely wrong. It’s HTML markup but the content type is set to text/plain. If you view the text/html version it is basically the same but you can pass it through a MIME type handler.

I see what you mean now. And I think this is due to announcement posts being created not on Discourse itself, but rather through the integration with the Community Blog (specifically Community Blog tag).

When you write something on Discourse, you write it in markdown-like text format and then Discourse engine converts it for HTML and plain text versions in the mail, which works nicely.

But when it fetches the article from a Community Blog, the source of the data is already in HTML. So it posts it as is into the text variant of the article.

@mattdm do you think there is a way to tweak the integration so it creates a proper text variant?

1 Like

Yeah, I’ll look into it.