В крупном форуме Discourse возникла проблема: письма-дайджесты (сводки активности) не доставляются всем подходящим пользователям, как ожидалось.
Детали проблемы:
Я понимаю, что письма-дайджесты отправляются только неактивным пользователям, но, судя по нашим настройкам, получателей должно быть много.
Некоторые пользователи, которые были в сети в течение последних 180 дней, не получают письма-дайджесты.
В логах Администрирование > Электронная почта > Пропущено нет явных ошибок, однако письма не доставляются.
Проверенные настройки и конфигурации:
Отправка на основе активности пользователя:
Пользователи, которые недавно заходили на сайт, не должны получать дайджесты, но я подтвердил, что есть много пользователей, которые не заходили более 30 дней, и они всё равно не получили письмо.
suppress_digest_email_after_days:
Установлено значение 180 дней (по умолчанию). Однако пользователи, неактивные менее 180 дней, всё равно не получают дайджесты.
default_email_digest_frequency:
Изначально установлено значение еженедельно (10080 минут)
Изменено на ежедневно (1440 минуты), но отправка писем всё равно не происходит.
Логи электронной почты и проверки доставки:
Логи Администрирование > Электронная почта > Отправлено/Пропущено не указывают на то, что попытки отправки дайджестов были сделаны и пропущены.
Настройки электронной почты на стороне пользователя не блокируют дайджесты (проверено на тестовых аккаунтах).
Сервер и провайдер электронной почты:
Используется провайдер электронной почты с высокой пропускной способностью, поддерживающий массовую отправку.
Нет никаких признаков ограничений скорости или проблем с доставкой.
Другие типы писем (уведомления, сброс пароля и т. д.) доставляются без проблем.
Вопросы:
Есть ли способ принудительно отправить письмо-дайджест всем пользователям, соответствующим критериям неактивности?
Может ли существовать какая-то скрытая проблема, из-за которой дайджесты не отправляются, даже когда все настройки кажутся правильными?
Существуют ли известные ограничения для крупных форумов, которые могут влиять на планирование или отправку дайджестов?
Поможет ли изменение каких-либо других настроек обеспечить регулярную доставку дайджестов пользователям?
Буду признателен за любые рекомендации или предложения по устранению неполадок. Заранее спасибо!
Для проверки этого мы установили частоту дайджеста на 30 минут, убедились, что было создано новое сообщение, но даже тогда дайджест-письма не были отправлены подходящим пользователям.
Я помогаю @emonunix в этом вопросе. Похоже, что у нас есть фоновая задача Sidekiq, которая запускается каждые 30 минут в рамках этого процесса. Без возможности отладки этой задачи она, по-видимому, выполняется без ошибок. Вот текущий статус.
Я тестировал различные конфигурации, чтобы понять, почему дайджест-письма не отправляются, как ожидалось. Я попытался установить частоту дайджеста на 30 минут для тестирования, но настройка не сохранилась и через несколько минут выдала ошибку.
Поскольку размер форума велик, я подозреваю, что это может быть связано с тем, как Discourse обрабатывает такие изменения в масштабе. Однако я не увидел никаких сгенерированных логов ошибок, что затрудняет устранение неполадок.
Если у кого-то есть понимание того, почему настройки могут не сохраняться — особенно в крупных форумах — или как заставить логи фиксировать больше деталей, буду благодарен за любые рекомендации.
Добавлю немного подробностей. Мы уже несколько раз изучали это руководство:
Однако оно не даёт решения нашей проблемы.
Есть ли у кого-нибудь следующие шаги для проверки, почему дайджесты не отправляются? Существует ли какой-либо процесс или способ проверить, что система выполняет:
Вопрос: вы изменили эту настройку ретроспективно для всех пользователей? Насколько мне известно, после того как она установлена при создании аккаунта, она не меняется, даже если вы измените значения по умолчанию.
Проверьте свой профиль и убедитесь, что значение соответствует ожидаемому.
Спасибо, @Bas. Мы обновили значение до 30, и его можно применить ретроспективно — при внесении этого изменения система выводит сообщение, подтверждающее обновление записей пользователей.
Кроме того, я не думаю, что ошибка связана с тем, что сводные письма не отправляются, поскольку мы подтвердили, что пользователи с правильными настройками всё равно их не получают.
Дайте знать, если у вас появятся ещё какие-то идеи!
Вы проверяли несколько аккаунтов, которые не получают рассылку, чтобы убедиться, что у них не отключены категории и/или теги? Я полагаю, что если они отключены, дайджест не будет включать темы.
В противном случае лучшим ресурсом, скорее всего, будет наша команда.
Ещё один момент, касающийся вашего почтового сервера: добавили ли вы DNS-запись DKIM для вашего домена? Не уверен, что это требуется от всех SMTP-провайдеров, но это может помочь, чтобы письма не помечались как спам и не блокировались. Просили ли вы пользователей проверить папку «Спам»?
Спасибо, @Heliosurge. Для ясности: письма вообще не отправляются, поэтому вопрос не в том, видны ли они, блокируются ли или попадают в спам — Discourse даже не начинает их обработку. Вот скриншот активности за последние несколько дней:
[скриншот удалён, так как содержит адреса электронной почты пользователей]
Имейте в виду, что исходя из настроек и конфигурации, должно быть около 90 дайджестов в день.
По нашим данным, письма даже не ставятся в очередь — как будто задача не запускается, не выполняется с ошибкой… или и то, и другое.
Хорошо, но другой компонент — это также проверка предпочтений члена в тегах и категориях. Возможно, у них что-то отключено.
Ещё один вопрос, на который хотел бы получить ответ член команды: если член использует ссылку «отписаться» в электронном письме, меняет ли это явно настройки пользователя.
Честно говоря, я считаю эту проблему бессмысленной. Но, возможно, есть какая-то ошибка.
Всё, что вы поделили, по моему мнению, должно работать как положено.
@Heliosurge, извините, что отвечаю на ваш вопрос. Конечно, могут быть пользователи с настройками, которые препятствуют получению дайджеста. У нас на сайте есть несколько демо-пользователей, настройки которых мы контролируем, и мы проверили (насколько нам известно), что рассылка должна работать. Поэтому я не думаю, что все 80 человек изменили свои настройки, чтобы НЕ получать дайджест.
Одна вещь, которая кажется странной: сегодня я заметил, что при посещении сайта строка «последний визит» показывает очень старую дату, например, 9 дней назад, хотя я захожу каждый день — это неточно. Не может ли эта логика быть связана с тем, какую дату Discourse считает датой отправки дайджеста? Я не знаю, просто это показалось мне странным, и на данном этапе мы уже почти цепляемся за соломинку в поисках следующих шагов…
Спасибо, @Heliosurge.
Так как @Jacob_Peebles часто посещает сайт, выше строки ____ last visit ____ он должен видеть только очень свежие посты, например, от 5–10 минут или 1–2 часов назад.
Нам не удалось понять, почему Discourse показывает посты возрастом 8–9 дней выше строки последнего посещения.
Я проверил это со своего аккаунта, но не столкнулся с этой проблемой.
Честно говоря, не совсем уверен в этом. Как администраторы, мы часто узнаём о проблеме одними из последних.
Вы сказали, что информация о вашем последнем посещении выглядит правильно, тогда как у @Jacob_Peebles последнее посещение не обновляется корректно?
Интересно, сколько ещё пользователей сталкиваются с подобным.
Получает ли ваш аккаунт дайджест-письма? Конечно, учитывая, что вы часто онлайн, вы можете не попадать в интервал времени, необходимый для отправки дайджеста (насколько я помню). Однако я не вижу настройки, определяющей, как долго пользователь отсутствует, если только вы не имели в виду упомянутые вами настройки: каждые 30 минут, каждый час, ежедневно или еженедельно.
Безусловно, понимаю, насколько это может быть раздражающим, так как такая функция могла бы помочь снизить нагрузку от рассылки писем, отправляя только действительно необходимые уведомления.
@Heliosurge нет, я не получаю дайджест, но за последние 3 дня ни один пользователь его тоже не получил.
Да, это невероятно раздражает, это точно. Судя по тому, что мы видим, системных ошибок нет, в Sidekiq ничего нет, в логах тоже ничего нет, так что это может случиться с кем угодно… и они никогда не узнают, что письма не отправляются как ожидалось… страшно.
Потому что это больно в самых чувствительных местах — постоянный вход в систему. Если я правильно помню, я использую 365 дней. И никаких известных проблем такого рода нет.
Возраст сессии нужен лишь для того, чтобы не приходилось постоянно входить в систему заново; насколько мне известно, это не имеет никакого отношения к email-подборкам.