Дубликаты шаблонов электронной почты с неверным содержимым

Нормально ли, что в настройках электронной почты у меня дублирующиеся шаблоны?

Эта ошибка была обнаружена, потому что ссылка подтверждения для добавления второго адреса электронной почты всегда возвращала ошибку 404. Затем мы выяснили, что во многих записях в шаблонах электронной почты есть ошибки: дублирующиеся темы с похожим содержанием. Похоже, это старый контент, который не был заменён?

По поводу проблемы с подтверждением электронной почты: у меня есть один шаблон с неверной (старой?) ссылкой и другой — с правильной. Почему у меня два шаблона с одинаковым именем, и почему я не могу удалить неверный? Это ошибка в Discourse?

Фактически у меня несколько дублирующихся записей (шаблонов) с разным содержанием :thinking:

Из-за этого я не могу их удалить: кнопки удаления нет. А если я удалю содержимое, получаю ошибку, как на этом скриншоте:

Я тоже был сбит с толку двумя шаблонами подтверждения нового адреса электронной почты. Но они немного отличаются. Один отправляется, когда администратор добавляет новый адрес электронной почты в профиль пользователя, а другой — когда пользователь делает это самостоятельно. Последняя строка разная.

Подтвердите свой новый адрес электронной почты для %{site_name}, перейдя по следующей ссылке:

%{base_url}/u/confirm-new-email/%{email_token}

Если вы не запрашивали это изменение, свяжитесь с [администратором сайта](%{base_url}/about).
Подтвердите свой новый адрес электронной почты для %{site_name}, перейдя по следующей ссылке:

%{base_url}/u/confirm-new-email/%{email_token}

Это изменение адреса электронной почты было запрошено администратором сайта. Если вы не запрашивали это изменение, свяжитесь с [администратором сайта](%{base_url}/about).

Я думаю, что удаление одного из них нарушит работу одной из рассылок.

В моих шаблонах используется одна и та же ссылка. Возможно, у вас они отличаются, потому что вы ранее настраивали шаблон.

Интересно, почему части ссылки настраиваются через шаблон. Если бы шаблон использовал только %{confirmation_link}, насколько я понимаю, ссылка не устарела бы даже при кастомизации шаблона.

Не совсем, у меня есть несколько дубликатов с похожим содержимым. На примере из моего скриншота (возможно, не видно) одна из ссылок ведет на «confirm-new-email» (правильно), а другая — на «authorize-email» (которая является битой / несуществующей ссылкой).

Можете показать нам ещё несколько скриншотов (или видео), чтобы объяснить проблему, с которой вы столкнулись? Нам нужно больше информации, чтобы помочь вам.

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

Как это сделать?

Хорошо, я записал это видео, извините за низкую громкость микрофона: https://www.youtube.com/watch?v=kVnqpC7T9pQ

На странице настроек электронной почты в панели администратора щелкните по каждому шаблону электронной почты, а затем выберите кнопку Отменить изменения. Если шаблон уже соответствует настройкам по умолчанию, кнопка «Отменить изменения» не отображается.

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

Похоже, вы кастомизировали один из них, добавив:

Иногда наши письма помечаются как СПАМ. Отметьте это письмо как важное и перетащите его в раздел «Главное», чтобы повысить надёжность доставки. Это также поможет другим пользователям получать уведомления корректно. Помните, что вы всегда можете отписаться.

Этот текст не входит ни в один из шаблонов по умолчанию. Поэтому, вероятно, у вас та же проблема, что и в этой теме: Confirmation email link (after change) is broken ("Oops!") due to bad email customization - #5 by gerhard. Всякий раз, когда вы кастомизируете текст, Discourse не перезаписывает его при обновлении оригинала. Программа не знает, как «объединить» ваши изменения с новыми правками.
Поэтому вам нужно либо обновить свой кастомизированный текст самостоятельно, либо сбросить его до текста по умолчанию, как предложил Тобиас, а затем при желании кастомизировать его заново.

Но, как я уже объяснял ранее, Discourse использует оба шаблона. Если вы удалите один из них, система не отправит его, но продолжит использовать тот шаблон, который создан для текущей ситуации. То есть, когда пользователь меняет свой email, используется соответствующий шаблон. Другой шаблон применяется, когда администратор меняет email пользователя. Разные ситуации требуют разных текстов, поэтому существуют разные шаблоны.

Также в случае двух шаблонов для «учётная запись заглушена» и «учётная запись приостановлена» оба необходимы, и удалять один из них — плохая идея. У этих шаблонов немного разные сценарии использования: один отправляется, когда пользователь заглушен или приостановлен на ограниченное время. Поэтому в нём указана дата. Другой шаблон используется, когда вы решаете заглушить/приостановить учётную запись навсегда. В этом случае письмо не сообщает пользователю, что он «приостановлен до 3025 года» — это было бы глупо. Поэтому существует второй шаблон без плейсхолдера для указания срока приостановки/заглушки.

Ах! Теперь я вижу кнопку отмены

Я по очереди очищаю все изменённые шаблоны, но этот конкретный — «Напоминание о проверяемых» — выдаёт ошибку. Только у меня такая проблема?

Это было исправлено недавно. Вам нужно обновить ваш форум, чтобы получить исправление.

Также вы можете сбросить текст в admin/customize/site_texts, выполнив поиск по system_messages.reviewables_reminder.

Хорошо, я исправил неверную ссылку «authorize-email» на правильную, и через несколько часов снова получил спам:

Это нормально, что установки Discourse получают спам-ботов таким образом? Я так не думаю… но почему изменение этого письма с подтверждением заставляет спам-ботов атаковать форум?

Ещё более запутанным является то, что я не вижу никаких логов от них; фактически, нет даже «новых зарегистрированных пользователей» (что ещё больше запутывает связь этой ссылки подтверждения):

Так откуда же берутся эти спам-боты? Посмотрев на одного из них, вижу, что он был создан в 2020 году, ладно…

Вопрос: когда пост помечается (я добавил много ключевых слов в список флагов), какое правильное действие для спам-аккаунтов? (удалить все его посты, удалить аккаунт, удалить следы и т. д.).

С другой стороны, я вижу, что у пользователя создано 11 постов; на его профиле есть опция «удалить все посты», но нет возможности их «просмотреть» (очень нужна такая ссылка). Как я могу увидеть, какие посты создал пользователь? На самом деле он выглядит как легитимный пользователь (в его первом посте от 2020 года, значит ли это, что аккаунт этого пользователя был взломан в Discourse?)

Возвращаясь к теме, я всё ещё запутался в том, какая связь может быть между ссылкой подтверждения и этими спам-действиями, но я только что заметил, что 32 минуты назад был создан НОВЫЙ пользователь, пытающийся спамить бессмыслицей: