Здравствуйте! Я использую собственную версию Discourse на своём сервере. У меня установлена последняя сборка для разработки: Commits · discourse/discourse · GitHub
Я заметил, что Discourse отправляет электронные письма дважды, когда пользователь регистрируется или получает личное сообщение и т. д.
Я могу воспроизвести эту проблему при регистрации нового пользователя. Не знаю, как её диагностировать, в чём именно проблема, или может ли это быть связано с моим почтовым сервером. Нашёл несколько похожих тем, но они были созданы несколько лет назад, поэтому решил открыть новую.
Видите ли вы какую-либо информацию в логах отправленных писем вашего сайта, связанную с этими письмами? Обратите внимание, что с помощью полей ввода в верхней части этой страницы можно отфильтровать письма по пользователю, адресу получателя или типу письма:
Хотя произошло одно странное. С доменом protonmail.com дубликат не отправился, а с anonaddy.com пришло два письма. Это заставляет меня подумать, что проблема, возможно, связана с почтовым сервером, а не с Discourse.
Хотя с моего собственного домена/почтового сервера я тоже получаю дубликаты писем. Можно ли доверять тому, что если письмо не отображается на странице «Отправленные», то это на 100% означает, что Discourse не отправляет дубликаты?
Хорошо, похоже, что оба письма действительно пришли из Discourse, если я всё правильно понял:
Первое письмо:
Return-Path: <SRS0=ll8P=FH=anonaddy.com=b_na4w2nlvmv3gizdenmya_gq4wmodfhfrwm@Mail Server>
Delivered-To: Email Address
Received: from mail2.anonaddy.me (mail2.anonaddy.me [***.***.***.***])
by Mail Server (Postfix) with ESMTPS id A9132370DA
for Email Address; Sat, 23 Sep 2023 11:06:42 +0300 (+03)
Received: from mail2.anonaddy.me (mail2.anonaddy.me [127.0.0.1])
by mail2.anonaddy.me (Postfix) with ESMTPS id 64958FA584
for Email Address; Sat, 23 Sep 2023 09:06:41 +0100 (BST)
DKIM-Signature: [Truncated]
From: [Sender]
To: Email Address
Subject: =?utf-8?Q?=5BBilin=C3=A7li?= Teknoloji
=?utf-8?Q?T=C3=BCketicileri=5D_Hesab=C4=B1n=C4=B1z=C4=B1_ona?=
=?utf-8?Q?ylaman=C4=B1z_i=C3=A7in_an=C4=B1msat=C4=B1c=C4=B1?=
Feedback-ID: F:28f5e9fd-7ba5-4466-8b17-b52f087bd332:anonaddy
Message-ID: [Message ID]
Received: from Mail Server ([***.***.***.***]) by
mail2.anonaddy.me (Postfix) with ESMTPS id 70F86100233 for
Email Address; Sat, 23 Sep 2023 09:06:37 +0100 (BST)
Второе письмо (то же самое, дубликат, видно, что разница составляет несколько секунд):
Return-Path: <SRS0=mdkr=FH=anonaddy.com=b_payts6dtgn5dkodznftq_my3tgntdgvqwk@Mail Server>
Delivered-To: Email Address
Received: from mail2.anonaddy.me (mail2.anonaddy.me [***.***.***.***])
by Mail Server (Postfix) with ESMTPS id D2066370DA
for Email Address; Sat, 23 Sep 2023 11:06:54 +0300 (+03)
Received: from mail2.anonaddy.me (mail2.anonaddy.me [127.0.0.1])
by mail2.anonaddy.me (Postfix) with ESMTPS id 68CBC107D41
for Email Address; Sat, 23 Sep 2023 09:06:54 +0100 (BST)
DKIM-Signature: [Truncated]
From: [Sender]
To: Email Address
Subject: =?utf-8?Q?=5BBilin=C3=A7li?= Teknoloji
=?utf-8?Q?T=C3=BCketicileri=5D_Hesab=C4=B1n=C4=B1z=C4=B1_ona?=
=?utf-8?Q?ylaman=C4=B1z_i=C3=A7in_an=C4=B1msat=C4=B1c=C4=B1?=
Feedback-ID: F:28f5e9fd-7ba5-4466-8b17-b52f087bd332:anonaddy
Message-ID: [Message ID]
Received: from Mail Server ([***.***.***.***]) by
mail2.anonaddy.me (Postfix) with ESMTPS id E34B6100233 for
Email Address; Sat, 23 Sep 2023 09:06:51 +0100 (BST)
Далее проверьте логи почтового сервера, чтобы выяснить, отправил ли Discourse одно сообщение или два, и какова история писем, поступивших на почтовые серверы anonaddy с идентификаторами 70F86100233 и E34B6100233.
Похоже, Клаудия не может найти эту информацию. Будем признательны за любые другие предложения о том, как можно точно определить и исправить проблему, так как я совершенно не разбираюсь в этом. Спасибо.
Однажды я сталкивался с похожей проблемой. Пользователи получали шквал писем, которые почтовый сервер отправлял, но в представлении Discourse они не были доставлены.
Моя гипотеза заключалась в том, что Discourse передаёт задачу почтовому серверу, и в процессе возникает тайм-аут. Из-за этого для Discourse это выглядит как неудача, хотя письмо было отправлено. Неудачная задача затем повторяется, что приводит к отправке нового письма.
Мне удалось решить проблему, убрав задачи в Sidekiq, перезапустив почтовый сервер и настроив правила fail2ban.