Discourse enviando doble correo electrónico

Hola, estoy usando Discourse autoalojado en mi servidor. Estoy en la última compilación de desarrollo hasta ahora: Commits · discourse/discourse · GitHub

Estoy notando que Discourse envía correos electrónicos 2 veces cuando un usuario se registra o recibe un mensaje privado, etc.

Puedo recrear esto cuando registro a un nuevo usuario. No sé cómo puedo solucionar esto o cuál es el problema exacto, o si podría ser un problema de mi servidor de correo electrónico… Encontré algunos temas similares pero tienen un par de años, así que quería abrir un nuevo tema.

¡Gracias por la ayuda!

¿Ve alguna información en los registros de correos electrónicos enviados de su sitio relacionada con estos correos electrónicos? Tenga en cuenta que puede usar las entradas en la parte superior de esa página para filtrar correos electrónicos por Usuario, Dirección de destino o Tipo de correo electrónico:

Si esto es un error, sería bueno saber exactamente para qué se están enviando los correos electrónicos duplicados.

¿Qué tipo de correo electrónico recibe cuando un usuario se registra? ¿Le dice que hay usuarios que requieren aprobación?

Para los correos electrónicos relacionados con mensajes privados, ¿son para mensajes que los usuarios le han enviado?

2 Me gusta

Hola,

En esa página, incluso cuando envía el doble, solo se muestra como uno.

Aunque sucedió algo extraño. Con el dominio protonmail.com no envió un doble, pero con anonaddy.com hay un doble correo electrónico. Esto me hace pensar que tal vez este problema esté relacionado con el servidor de correo y no con Discourse.

Aunque también recibo correos electrónicos dobles de mi propio dominio/servidor de correo. ¿Podemos confiar en que si el correo electrónico no se muestra en la página de enviados, entonces es 100% seguro que Discourse no está enviando correos electrónicos dobles?

Gracias.

Si observas las cabeceras de los correos electrónicos duplicados, deberías poder determinar dónde ocurrió el problema.

Comprueba específicamente las cabeceras received-by.

2 Me gusta

De acuerdo, parece que ambos provienen de Discourse entonces, si lo he entendido bien:

Primer correo:

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)

Segundo correo (igual, duplicado, puedes ver que están separados por segundos):

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)
1 me gusta

estas son las partes interesantes.

¿Es el message-ID el mismo?

A continuación, comprueba los registros del Mail Server para averiguar si Discourse envió un mensaje o dos y cuál es el historial del correo electrónico que llegó a los servidores de correo de anonaddy como 70F86100233 y E34B6100233.

4 Me gusta

Los ID de mensaje son diferentes.

El primero es: Message-ID: <6172c966-5777-44c2-988f-6acdd7ff33ff@btt.community>
El segundo es: Message-ID: <70297dae-5cb7-467b-980d-ef6dcfeea220@btt.community>

Revisé los registros de mi servidor de correo de esta manera: cat mail.log | grep 70297dae

Salida:

Sep 30 13:20:18 yuno postfix/cleanup[1559656]: 7C0F03D047: message-id=<70297dae-5cb7-467b-980d-ef6dcfeea220@btt.community>
Sep 30 13:20:38 yuno postfix/cleanup[1559656]: 88FE33D027: message-id=<70297dae-5cb7-467b-980d-ef6dcfeea220@btt.community>
Sep 30 13:20:44 yuno dovecot: lda(nonrelated@x.x.me)<1559829><m0KuF3z2F2UVzRcAMzq6nQ>: sieve: msgid=<70297dae-5cb7-467b-980d-ef6dcfeea220@btt.community>: stored mail into mailbox 'INBOX'

Lo mismo con otro ID de mensaje: cat mail.log | grep 6172c966

Salida:

Sep 30 13:20:43 yuno postfix/cleanup[1559799]: D3D4A3D059: message-id=<6172c966-5777-44c2-988f-6acdd7ff33ff@btt.community>
Sep 30 13:20:49 yuno postfix/cleanup[1559656]: EFEBC3D027: message-id=<6172c966-5777-44c2-988f-6acdd7ff33ff@btt.community>
Sep 30 13:20:49 yuno dovecot: lda(nonrelated@x.x.me)<1559834><Z0kBEIH2F2UazRcAMzq6nQ>: sieve: msgid=<6172c966-5777-44c2-988f-6acdd7ff33ff@btt.community>: stored mail into mailbox 'INBOX'

Pero en mi panel de administración todavía parece que solo envió uno:
image

He visto un problema similar antes con un servidor que ejecutaba dovecot. Había un problema del lado de dovecot que estaba causando la reentrega.

Déjame ver si puedo encontrar la información.

Editar: Todavía estoy tratando de encontrar la información. Olvidé cuántos datos tendría que buscar. :slight_smile:

4 Me gusta

Supongo que Claudia no puede encontrar esa información. Cualquier otra sugerencia sobre cómo podemos identificar y solucionar el problema sería apreciada porque no tengo ni idea. Gracias. :slight_smile:

¿Encontraste una solución?

Una vez tuve problemas con un comportamiento similar. Los usuarios se vieron bombardeados con correos electrónicos, que el servidor de correo envió pero que, en opinión de Discourse, no se enviaron.

Mi hipótesis fue que es posible que Discourse le asigne un trabajo al servidor de correo y que haya un tiempo de espera durante el proceso, lo que hace que esto parezca un fallo para Discourse, aunque el correo se haya enviado. El trabajo fallido se repite y da como resultado un nuevo correo.

Me complació resolver esto eliminando trabajos en Sidekiq, reiniciando el servidor de correo y jugando con las reglas de fail2ban.