Привет, я настроил обработку входящих писем от анонимных пользователей.
Решил проверить это с помощью функции приглашения. Письмо было отправлено с «уведомления по электронной почте» в почтовый ящик, привязанный к категории. Новая тема была успешно создана, и пользователь-стажер также был создан.
Затем я открыл почтовый ящик и переслал письмо-приглашение себе (то есть снова в ту же категорию). С включенной бета-опцией для пересланных писем система вернула сообщение о том, что тему нельзя создать, так как не обнаружено содержимое. Похоже на ошибку, но ладно. В результате вторая тема «Проблема с электронной почтой – Нет содержимого» была создана от того же пользователя-стажера.
Вопрос в том, как удалить этого пользователя-стажера
…
Я открыл панель администратора, перешел в раздел «Пользователи», затем «Стажеры». Сначала нажал кнопку для удаления всех сообщений пользователя, затем удалил самого пользователя (просто удаление, без блокировки IP). Через несколько минут пользователь вместе со своими сообщениями вернулся. Как его удалить вместе с сообщениями? Что не так? В логах нет никаких ошибок или предупреждений.
Удалил. Этот пользователь (с тем же адресом электронной почты и никнеймом) был создан 3 раза. Предполагаю, что это некорректное поведение. Администратор не может определить, сколько пользователей соответствует адресу электронной почты, пока не проверит ID пользователя в базе данных. Похоже на ошибку, но я не уверен.
Вы уверены, что адрес электронной почты был тем же самым? Временные пользователи существуют только в виде адресов электронной почты, поэтому я не совсем понимаю, как возможно появление дубликатов. Можете ли вы предоставить здесь конкретную информацию об этом пользователе?
Да, это так. После того как я удалил пользователя 3 раза вместе с его сообщениями, таблица Topics содержит следующую информацию:
Вы можете заметить, что ID 330, 332 и 334 должны соответствовать одной теме; у них даже одинаковое время создания. Я думаю, что каждый раз при попытке удалить пользователя создавался новый пользователь, поэтому у тем обновляется временная метка.
То же самое касается ID 331, 333 и 335.
Мои настройки:
anonymous posting min trust level = TL4
pop3 polling enabled
pop3 polling username = support@tmch.icu
pop3 polling delete from server = off
log mail processing failures = on
email in = on
email in min trust = TL0
block auto generated emails = off
enable forwarded emails = on
Проблема воспроизводится. Шаги:
- Назначьте email категории, пусть это будет
support@tmch.icu. Моя категория доступна только группам.
- Перейдите в раздел приглашений в своём профиле:
https://tmch.icu/my/invited (я администратор).
- Отправьте приглашение для
support@tmch.icu.
- Через 5 минут проверьте полученные письма по адресу
https://tmch.icu/admin/email/received.
- Проверьте, появился ли пользователь в статусе «staged» по адресу
https://tmch.icu/admin/users/list/staged.
- Проверьте, была ли создана тема.
- Откройте почтовый клиент для
support@tmch.icu и перешлите только что полученное приглашение на support@tmch.icu. Не изменяйте email, просто перешлите как есть.
- Через 5 минут снова проверьте полученные письма по адресу
https://tmch.icu/admin/email/received — вероятно, оно не будет обработано из-за пустого тела письма; проигнорируйте его.
- Перейдите на
https://tmch.icu/admin/users/list/staged и удалите пользователя в статусе «staged». Соответствующая тема будет удалена автоматически.
- Подождите 5 минут и обновите следующие страницы:
https://tmch.icu/admin/users/list/staged
https://tmch.icu/admin/email/received
ваша категория
- Вы увидите, что удалённый пользователь и тема появились снова.
- Повторите шаги 9–11; вы увидите то же самое в последний раз.
Этот пользователь всё ещё жив… Он воссоздаётся каждый раз, когда я его удаляю. Как я могу провести глубокое расследование?
Обновление: чтобы разрешить эту проблему, я на 10 минут отключил входящий адрес электронной почты в категории. После этого на адрес noreply@tmch.icu (это уведомительный адрес, с которого отправляются приглашения) пришло сообщение о том, что адрес support@tmch.icu недоступен. Это прекратилось.