Пересылка письма попадает в исходную тему

Наш форум обслуживает широкое сообщество, состоящее из разных групп, которые не взаимодействуют регулярно, но иногда нуждаются в обмене информацией.
Проблема заключается в том, что если кто-то пересылает полученное письмо из одной категории в другую через email-in, сообщение попадает в исходную тему, а не в ту категорию, на адрес которой было отправлено письмо.

Детали:

  • Работаем на версии 2.9.0.beta1
  • В нашем экземпляре включены функции email-in и reply-by-mail
  • Для каждой категории назначен email вида discourse+КАТЕГОРИЯ@...

Шаги для воспроизведения:

  • Пользователь получает уведомление по электронной почте о новом сообщении в категории A
  • Пользователь пересылает полученное письмо в категорию B, используя её адрес discourse+CAT-B@...
  • Пересланное сообщение оказывается в исходной ветке в категории A

Вопрос: как гарантировать, что пересланное письмо попадёт в правильную категорию B? (без изменения заголовков письма!)

Вы имеете в виду, что оно попадает в исходную тему в категории A?

Опять же, я отвечаю, ничего не зная, и скоро кто-нибудь придёт и расскажет, как всё обстоит на самом деле, но, насколько я знаю, должно быть именно так, и ответ не переносится в новую тему только из-за изменения адреса электронной почты.

Верно, спасибо — исправил!

Для уточнения: человек не отвечает на письмо через reply-to, а пересылает его, вручную указывая адрес в поле to: как discourse+cat-B@.

Мне не удаётся воспроизвести эту проблему. Вот мои шаги на данный момент:

  • Настроил CategoryA и CategoryB, присвоив им адреса для приёма почты (categorya@[MyTestSite] и categoryb@[MyTestSite])
  • Установил для test_user статус «Слежение» для обеих категорий
  • Установил email time window mins на 1 минуту (необязательно, но ускоряет процесс)
  • Администратор создал тему в CategoryA
  • Test_user получил уведомление по электронной почте о новой теме в CategoryA и переслал его с сообщением в CategoryB
  • В CategoryB была создана новая тема (с очень некрасивым заголовком :slightly_smiling_face:Fwd: [JammyDodger's Test Site] [categorya] Topic for Category A), но в ней содержалось только добавленное сообщение, а не intended пересылаемая информация

Мне не удаётся воспроизвести ситуацию, когда пересланное письмо в категорию становится ответом на существующую тему. Может быть, стоит попробовать что-то ещё?

Спасибо за попытку!

Не может ли это быть связано с почтовым клиентом? Я «возложил вину» на Discourse за группировку сообщений по полю «in-reply-to», а не по полю «to».

ха, что у тебя есть для этой настройки?

image

Не уверен? Я использовал Gmail для своих тестов, если это важно?

У меня тоже это значение стоит по умолчанию. :+1:

Напоминает мне A mail reply may end up in the wrong category

Отличное наблюдение, @Moin :+1:

Я только что тоже попытался воспроизвести эту ситуацию (ключевое отличие заключалось в том, чтобы нажать «Ответить», а затем вручную изменить адрес в поле «Кому», а не использовать пересылку), но у меня сообщение снова создало новую тему в категории B. Возможно, это зависит от конкретного клиента? @artur, какой вы используете?

Я только что попробовал через свой Gmail, но письмо всё равно попало в исходную категорию.
Странно — я удивлён, что у тебя получилось!
Можешь проверить заголовки пересланного письма?
Я, например, вижу, что в References указан ID исходной темы — возможно, это имеет приоритет над полем to:?

Спасибо за ссылку!
Похоже на аналогичную ситуацию, но в моём случае речь идёт о пересылке письма, а не о ответе. Поэтому я всё ещё не понимаю такого поведения.

Я постоянно пишу ответ, а потом вспоминаю о чём-то ещё, что можно попробовать. :slight_smile: Но пока мне не удалось воспроизвести вашу проблему. Несколько возможных релевантных моментов: у меня на тестовом сайте настроен mail-receiver, а не POP3, и вы пересылаете ли первое сообщение/OP или ответ?

Я использую POP3 и пересылаю первое сообщение.

Спасибо за помощь!

Привет, @JammyDodger. Я только что понял, что большинство моих категорий исторически были настроены как Category mirrors a mailing list. Не могли бы вы попытаться воспроизвести проблему при включении этой опции?
Я только что попробовал отключить это на моём тестовом экземпляре, и, похоже, это решает странное поведение.

Я только что протестировал это с включённой опцией «Категория дублирует рассылку» для категорий A и B, и теперь мне удалось воспроизвести проблему. :partying_face:

  • Настройте категории A и B, присвоив им адреса для входящей почты (categorya@[MyTestSite] и categoryb@[MyTestSite]).
  • Включите для каждой категории опцию «Категория дублирует рассылку».
  • Установите для test_user статус «Слежение» для обеих категорий.
  • Установите значение «Временное окно для писем (мин)» на 1 минуту (необязательно, но ускоряет процесс).
  • Администратор создаёт тему в категории A.
  • Пользователь test_user получает уведомительное письмо о новой теме в категории A и пересылает его с сообщением в категорию B.
  • Пересылка отображается как ответ на исходную тему в категории A.

Я не очень хорошо разбираюсь в рассылках: это ошибка или конфликт настроек?

И похоже ли это на то, что могло бы помочь и в вашей проблеме, @dachary?

Спасибо за проверку!

Что ж, учитывая, что я перечитал функции опции зеркалирования почтового списка, думаю, это не ошибка, а задумано именно так:

  • Обычно find_related_post_with_key включен в настройках сайта. Отключать его для всего сайта не рекомендуется, так как это позволяет подделывать личность пользователя на основе адреса электронной почты. Входящие письма, отправленные в почтовый список, всегда используют Message-ID письма для поиска связанных постов и игнорируют значение этой настройки сайта.

Я в основном оставил эту опцию из-за другого момента:

  • Обычно Discourse ожидает, что входящие письма будут содержать текст, отформатированный в Markdown. Пользователи почтовых списков обычно не знают об этом требовании, поэтому Discourse не интерпретирует Markdown (кроме блоков кода, заключенных в три обратных апострофа) или HTML в простых текстовых письмах и постах, публикуя их с сохранением исходного форматирования.

Это имеет смысл для людей, которые ничего не знают о Markdown :slight_smile:

Не за что. :slight_smile: Я перенёс эту тему в раздел Support :+1:

Теперь, когда вы знаете больше о том, как работают настройки вместе, сможете ли вы получить достаточно точное представление о том, как вы хотите, чтобы это работало?

Так что, я думаю, для чистого зеркала списка рассылки оно выполняет свою работу корректно.
Я посмотрю, как пользователи справятся с Markdown — они наверняка не знают, что это требуется!

Одна проблема, которая возникла, когда я отключил зеркало списка рассылки, заключается в том, что в случае автоматически генерируемых сообщений, отправленных от имени некоторых пользователей, возникает ошибка Discourse::InvalidAccess. Сообщение об отказе гласит:

Ваша учётная запись не имеет прав для создания новых тем в этой категории.

Хотя раньше для того же пользователя это работало. Так что, видимо, опция зеркала отключает какой-то вид защиты для этого.