Discourse Enviando E-mail Duplicado

Olá, estou usando o Discourse auto-hospedado em meu servidor. Estou na versão de desenvolvimento mais recente até o momento: Commits · discourse/discourse · GitHub

Estou percebendo que o Discourse envia e-mail 2 vezes quando um usuário se cadastra ou recebe uma mensagem privada, etc.

Posso recriar isso quando cadastro um novo usuário. Não sei como posso solucionar isso ou qual é o problema exato, ou se isso pode ser um problema do meu servidor de e-mail… Encontrei alguns tópicos semelhantes, mas eles têm alguns anos, então queria abrir um novo tópico.

Obrigado pela ajuda!

Você vê alguma informação nos logs de E-mails Enviados do seu site relacionada a esses e-mails? Observe que você pode usar os campos na parte superior dessa página para filtrar e-mails por Usuário, Endereço de Destinatário ou Tipo de E-mail:

Se isso for um bug, seria bom saber exatamente para que os e-mails duplicados estão sendo enviados.

Que tipo de e-mail você está recebendo quando um usuário se inscreve? Ele informa que há usuários que precisam de aprovação?

Para os e-mails relacionados a mensagens privadas, são para mensagens que os usuários enviaram para você?

2 curtidas

Olá,

Nessa página, mesmo quando envia duplicado, ele só aparece como um.

Embora algo estranho tenha acontecido. Com o domínio protonmail.com, ele não enviou duplicado, mas com anonaddy.com há um e-mail duplicado. Isso me faz pensar que talvez esse problema esteja ligado ao servidor de e-mail e não ao Discourse.

Embora eu também receba e-mails duplicados do meu próprio domínio/servidor de e-mail. Podemos confiar que, se o e-mail não for mostrado na página de enviados, então é 100% certo que o Discourse não está enviando e-mails duplicados?

Obrigado.

Se você olhar os cabeçalhos dos e-mails duplicados, poderá dizer onde o problema ocorreu.

Verifique especificamente os cabeçalhos received-by.

2 curtidas

Ok, parece que ambos estão vindo do Discourse, se entendi corretamente:

Primeiro e-mail:

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 e-mail (o mesmo, em duplicidade, você pode ver que estão 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 curtida

estas são as partes interessantes.

O Message-ID é o mesmo?

Em seguida, verifique os logs do Mail Server para descobrir se o Discourse enviou uma mensagem vs. duas e qual é o histórico do e-mail que atingiu os servidores de e-mail do anonaddy como 70F86100233 e E34B6100233.

4 curtidas

Os IDs das mensagens são diferentes.

O primeiro é: Message-ID: \u003c6172c966-5777-44c2-988f-6acdd7ff33ff@btt.community\u003e
O segundo é: Message-ID: \u003c70297dae-5cb7-467b-980d-ef6dcfeea220@btt.community\u003e

Verifiquei os logs do meu servidor de e-mail assim: cat mail.log | grep 70297dae

Saída:

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

O mesmo com outro ID de mensagem: cat mail.log | grep 6172c966

Saída:

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

Mas no meu painel de administração, ainda parece que ele enviou apenas um:
image

Já vi um problema semelhante antes com um servidor executando o dovecot. Havia um problema no lado do dovecot que estava causando a nova entrega.

Deixe-me ver se consigo encontrar as informações.

Editar: ainda estou tentando encontrar as informações. Esqueci a quantidade de dados que estaria pesquisando. :slight_smile:

4 curtidas

Acho que a Claudia não consegue encontrar essa informação. Quaisquer outras sugestões sobre como podemos identificar e corrigir o problema seriam apreciadas, pois estou sem ideias. Obrigado. :slight_smile:

Você encontrou uma solução?

Uma vez eu estava lutando com um comportamento semelhante. Os usuários foram bombardeados com e-mails, que o servidor de e-mail enviou, mas na visão do Discourse não foram enviados.

Minha hipótese era que era possível que o Discourse desse um trabalho ao servidor de e-mail e houvesse um tempo limite durante o processo, o que faz com que isso pareça uma falha para o Discourse, mesmo que o e-mail tenha sido enviado. O trabalho falho é então repetido e resulta em um novo e-mail.

Fiquei feliz em resolver isso matando trabalhos no Sidekiq, reiniciando o servidor de e-mail e mexendo nas regras do fail2ban.