HTML-сущности и экранирующие символы в альтернативе text/plain для исходящей электронной почты

Недавно мы настроили экспериментальный экземпляр Discourse и заметили, что в альтернативной версии text/plain сообщений, отправляемых подписчикам, присутствуют HTML-сущности. На мой взгляд, это ошибка.

Экземпляр доступен здесь: https://discourse.osgeo.org
Скриншот одного из таких писем можно посмотреть здесь: Sandro Santilli 🌍 GIS: "@pmusaraj@mstdn.ca I can tell, and that hurts! @D…" - Mapstodon.Space
Полное письмо можно прочитать в самом Discourse здесь: PSC Vote: Let's move this list to discourse - #11 by Martin_Spott - SAC mailing list - OSGeo Discourse
Ещё один вариант просмотра письма доступен в архиве Mailman, откуда оно и попало в Discourse: PSC Vote: Let's move this list to discourse

Письмо, полученное Mailman от подписчика, содержит только text/plain в кодировке 7bit us-ascii, однако письмо, полученное через Discourse, становится многокомпонентным и включает также HTML-версию, которая явно сгенерирована автоматически, поскольку автор оригинала не использовал HTML.

1 лайк

Связанный тикет: Making sure you're not a bot!

2 лайка

Запрос в upstream-сообществе без ответа уже 4 дня. Похоже, ни разработчики Discourse, ни его сторонники не уделяют внимания коммуникации через электронную почту, из-за чего единственным возможным решением этой проблемы становится проект «почини сам».

Мы действительно заботимся о коммуникации через электронную почту, поэтому приложили значительные усилия для добавления поддержки как входящей, так и исходящей почты в Discourse. Тем не менее, учесть все возможные сценарии использования — чрезвычайно сложная задача, поскольку они часто вступают в противоречие друг с другом.

Пытаясь диагностировать вашу проблему и лучше понять ваш случай использования, я представляю ситуацию следующим образом:

  • Ваш экземпляр настроен на получение входящей почты из рассылки;
  • Пользователь «Martin_Spott» отправил текстовое письмо (text/plain) в вашу рассылку;
  • Discourse обработал письмо, преобразовав простой текст в Markdown/HTML для отображения в Discourse;
  • Вы получили копию этого письма, так как следите за этой темой/категорией в Discourse;
  • Содержимое этого письма повреждено.

Правильно ли я понял?

2 лайка

Что происходит внутри Discourse, я не знаю, но вот что я наблюдаю:

  • Наш экземпляр настроен на получение входящей электронной почты (от любого отправителя)
  • trac.osgeo.org отправляет письма в формате text/plain на адрес входящей почты Discourse, предполагая использование моноширинных шрифтов
  • Discourse выполняет какие-то действия (неизвестно какие)
  • Пользователи Discourse, выбравшие получение уведомлений по электронной почте, получают multipart-письмо, содержащее HTML-версию и альтернативу в формате text/plain, где в текстовой версии экранированы тире и присутствуют HTML-сущности

Теперь, упомянутая выше проблема (некорректный формат писем от Trac) на данный момент, похоже, исправлена, но я не знаю, благодаря какому именно событию: Making sure you're not a bot!

Могли ли что-то измениться из-за того, что я включал и выключал «Режим почтового списка»?

1 лайк

[quote=“Sandro Santilli, пост:6, тема:290637, имя_пользователя:strk”]
Могли ли что-то измениться из-за того, что я включал и выключал «Режим почтового списка»?[/quote]

Вряд ли. Скорее всего, дело в настройке сайта «Предпочитать HTML входящим письмам».

Рад, что теперь всё в порядке :raised_hands:

1 лайк

Я заговорил слишком рано: Making sure you're not a bot!

Вы предлагаете установить «Входящая почта предпочитает HTML» в значение ДА или НЕТ?

@robe2 отметила, что (временное) исправление, вероятно, было связано с тем, что она сняла флажок «Категория является зеркалом» — надеюсь, это даст больше информации для исправления

Когда я снял галочку с пункта «Категория — зеркало», отправляемые письма стали выглядеть лучше, а сами сообщения — чище.

Однако мне пришлось вернуть галочку, так как её отсутствие мешало группировке переписки (threading) и приводило к отклонению некоторых писем от нашей системы отслеживания заявок с ошибкой: Заголовок уже используется.