Résumés par e-mail, nouveaux utilisateurs et SSO

Mon site Discourse est le client SSO de mon site WordPress. Des utilisateurs Discourse ont été créés pour les membres du site WordPress dès qu’ils se sont connectés à WordPress. Presque aucun utilisateur n’a réellement visité le forum. J’ai configuré des résumés par e-mail pour qu’ils soient envoyés quotidiennement et j’ai appliqué rétroactivement ce paramètre à tous les utilisateurs Discourse existants. Le problème que je rencontre est qu’il semble que ces résumés ne soient envoyés qu’aux comptes Discourse qui ont effectivement visité le forum à un moment donné. Je souhaite que les utilisateurs commencent à recevoir les e-mails de résumé dès que leur compte existe dans Discourse. Le comportement que j’observe concernant les e-mails est-il le comportement par défaut et, si oui, comment puis-je le contourner ?

Savez-vous si les utilisateurs doivent répondre à un e-mail d’activation de Discourse avant leur première connexion depuis WordPress vers Discourse ? Ce sera le cas si vous n’utilisez pas la méthode d’inscription WordPress par défaut sur votre site WordPress. Cela signifie que les utilisateurs ne seront pas marqués comme actifs sur Discourse tant qu’ils n’auront pas répondu à l’e-mail. L’e-mail de résumé n’est envoyé qu’aux utilisateurs qui ont été marqués comme actifs sur Discourse.

Il y a pas mal de personnalisation en cours avec notre inscription WordPress, mais tous les utilisateurs que je vérifie dans Discourse sont définis comme actifs. Cependant, les champs « dernière connexion » et « dernière activité » sont vides.

Je me demande s’il pourrait y avoir un bug ? Tous mes paramètres semblent être en place. La seule chose à laquelle je peux penser, c’est que j’ai défini « supprimer les e-mails de résumé après X jours » à 3650, et comme mes utilisateurs n’ont jamais été vus, leurs e-mails sont supprimés. J’avais également désactivé les e-mails pour tous les utilisateurs pendant un certain temps, mais ce paramètre n’est actuellement pas défini.

Je pense que c’est ça. L’e-mail de résumé vous présente le résumé des éléments depuis votre dernière visite. Si vous n’avez jamais visité, il n’y a pas de « depuis votre dernière visite ».

Il semble que ce soit la cause du problème. Le code vérifie ceci :

.where("COALESCE(last_seen_at, '2010-01-01') >= CURRENT_TIMESTAMP - ('1 DAY'::INTERVAL * #{SiteSetting.suppress_digest_email_after_days})")

Puisque last_seen_at renverra nil pour le nouvel utilisateur, le code vérifiera si le ‘2010-01-01’ est antérieur à 3650 jours avant d’envoyer l’e-mail. Augmenter la valeur de ce paramètre devrait résoudre votre problème. Le risque à fixer cette valeur à un grand nombre de jours est que vous pourriez envoyer l’e-mail de résumé à des utilisateurs qui ne s’intéressent pas au site.

Cela a un peu aidé, mais n’a pas résolu le problème. Pour tester, j’ai défini la fréquence des e-mails de résumé à 30 minutes et le nombre maximum de notifications par jour à 1. J’ai également réglé le paramètre « dernière activité » à 365 000. En gros, les utilisateurs ajoutés à Discourse au cours des 17 derniers jours ont reçu des e-mails, ainsi que quelques utilisateurs vus récemment mais créés plus tôt. Je peux confirmer que tous les utilisateurs sont activés – du moins ceux que j’ai vérifiés dans un échantillon aléatoire d’utilisateurs n’ayant pas reçu d’e-mails. Je ne sais pas comment résoudre ce problème. Y a-t-il quelque chose que je peux réinitialiser manuellement ?

J’ai creusé un peu plus et il semble que les préférences des e-mails de résumé ne soient pas définies sur la plupart des comptes lorsque je modifie la fréquence. Ainsi, si je change la fréquence des résumés de 30 minutes à 1 heure et que je confirme pour appliquer le changement à tous les comptes, le paramètre ne semble pas être pris en compte. J’ai confirmé cela en usurpant l’identité de comptes qui ne reçoivent pas les e-mails. Leur paramètre de préférence indique que les résumés sont désactivés.