Discourse envoie des e-mails en double

Bonjour, j’utilise Discourse auto-hébergé sur mon serveur. Je suis sur la dernière version de développement à l’heure actuelle : Commits · discourse/discourse · GitHub

Je remarque que Discourse envoie des e-mails 2 fois lorsqu’un utilisateur s’inscrit ou reçoit un message privé, etc.

Je peux recréer cela lorsque j’inscris un nouvel utilisateur. Je ne sais pas comment dépanner cela ni quel est le problème exact, ou si cela pourrait être un problème de mon serveur de messagerie… J’ai trouvé des sujets similaires mais ils datent de quelques années, j’ai donc voulu ouvrir un nouveau sujet.

Merci pour votre aide !

Voyez-vous des informations dans les journaux d’e-mails envoyés de votre site concernant ces e-mails ? Notez que vous pouvez utiliser les champs en haut de cette page pour filtrer les e-mails par utilisateur, adresse e-mail ou type d’e-mail :

S’il s’agit d’un bug, il serait bon de savoir exactement pour quoi les e-mails en double sont envoyés.

Quel type d’e-mail recevez-vous lorsqu’un utilisateur s’inscrit ? Vous indique-t-il qu’il y a des utilisateurs qui nécessitent une approbation ?

Pour les e-mails liés aux messages privés, s’agit-il de messages que les utilisateurs vous ont envoyés ?

2 « J'aime »

Bonjour,

Sur cette page, même lorsqu’il envoie en double, il n’en affiche qu’un seul.

Cependant, une chose étrange s’est produite. Avec le domaine protonmail.com, il n’a pas envoyé en double, mais avec anonaddy.com, il y a un double e-mail. Cela me fait penser que ce problème est peut-être lié au serveur de messagerie et non à Discourse.

Bien que je reçoive également des e-mails en double de mon propre domaine/serveur de messagerie. Pouvons-nous faire confiance au fait que si l’e-mail n’est pas affiché sur la page des envois, alors Discourse n’envoie pas d’e-mail en double à 100 % ?

Merci.

Si vous regardez les en-têtes des e-mails en double, vous devriez pouvoir dire le problème s’est produit.

Vérifiez spécifiquement les en-têtes « received-by ».

2 « J'aime »

D’accord, il semble que les deux proviennent de Discourse alors, si j’ai bien compris :

Premier 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)

Deuxième e-mail (identique, en double, vous pouvez voir qu’ils sont séparés par quelques secondes) :

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 « J'aime »

ceci sont les parties intéressantes.

Est-ce que le Message-ID est le même ?

Vérifiez ensuite les journaux du serveur de messagerie pour savoir si Discourse a envoyé un message ou deux, et quelle est l’historique de l’e-mail qui a atteint les serveurs de messagerie d’anonaddy sous les identifiants 70F86100233 et E34B6100233.

4 « J'aime »

Les ID de message sont différents.

Le premier est : Message-ID: <6172c966-5777-44c2-988f-6acdd7ff33ff@btt.community>
Le second est : Message-ID: <70297dae-5cb7-467b-980d-ef6dcfeea220@btt.community>

J’ai vérifié les journaux de mon serveur de messagerie comme ceci : cat mail.log | grep 70297dae

Sortie :

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'

Idem avec l’autre ID de message : cat mail.log | grep 6172c966

Sortie :

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'

Mais dans mon panneau d’administration, il semble toujours qu’un seul message a été envoyé :
image

J’ai déjà vu un problème similaire avec un serveur exécutant dovecot. Il y avait un problème du côté de dovecot qui causait la redélivrance.

Laissez-moi voir si je peux trouver l’information.

Edit : j’essaie toujours de trouver l’information. J’ai oublié la quantité de données que j’allais rechercher. :slight_smile:

4 « J'aime »

Je suppose que Claudia ne trouve pas cette information. Toutes autres suggestions sur la façon dont nous pouvons identifier et résoudre le problème seraient appréciées car je suis désemparé. Merci. :slight_smile:

Avez-vous trouvé une solution ?

J’ai eu un comportement similaire par le passé. Les utilisateurs étaient submergés d’e-mails, que le serveur de messagerie envoyait mais que Discourse considérait comme non envoyés.

Mon hypothèse était qu’il était possible que Discourse confie une tâche au serveur de messagerie et qu’il y ait un délai d’attente pendant le processus, ce qui donnait l’impression d’un échec pour Discourse, même si l’e-mail avait été envoyé. La tâche échouée était alors répétée, ce qui entraînait un nouvel e-mail.

J’ai résolu ce problème en tuant des tâches dans Sidekiq, en redémarrant le serveur de messagerie et en ajustant les règles de fail2ban.