我需要帮助,有人关注了一个主题但没有收到邮件通知

大家好,

我需要就以下事项获得一些指导:一旦客户在我们的 WordPress 网站上注册账户,该账户会自动在我们的 Discourse 实例上创建。我们开发了一项自定义功能,允许我们的客户“关注”一个帖子;这意味着他们会点击我们 WordPress 帖子上的一个按钮,它会自动订阅/关注他们到链接的 Discourse 主题。

当客户在 Discourse 实例上登录一次后,此功能运行良好;但当他“关注” Discourse 上的主题,但尚未登录 Discourse 时,它不会向用户账户发送有关被关注主题的任何电子邮件。

有人知道如何解决这个问题吗?=)

提前致谢。

简而言之,就是将访问 Discourse 作为客户入职流程的一部分。也许您可以在 Discourse 上放置一些新客户信息,并在他们注册 Wordpress 时引导他们访问?

非常感谢您的评论@Ellibereth。

那么,如果我理解正确的话,注册用户必须在收到任何电子邮件确认之前访问论坛,是吗?

您能发送让客户观看帖子的功能代码吗?

我假设您正在使用 WP Discourse 插件在您的 Discourse 站点上进行用户身份验证。您尝试做的事情应该可以实现。由于对于曾经登录过 Discourse 的用户来说,它运行正常,因此问题的原因可能是 WP Discourse 插件在用户注册您的 WordPress 站点时,未将用户的电子邮件标记为“已验证”。如果是这种情况,用户将必须回复 Discourse 在他们首次通过您的 WordPress 站点登录 Discourse 时发送的激活电子邮件。在用户点击该激活电子邮件中的链接之前,Discourse 不会激活该用户。

要确认是否是这种情况,请查看最近创建帐户的用户的 Discourse 用户页面的“DiscourseConnect 单点登录”部分。点击“Last Payload”字段的“Show”按钮,并检查 require_activation 参数是否设置为 true

如果这是问题的原因,可能有一种解决方法。

4 个赞

感谢您@simon 提供的全面解答——非常感谢。

当我检查 require_activation 时,它被设置为“false”——请查看下面的截图。

1 个赞

以防万一,另一件要检查的事情是确保当 Discourse 用户首次在您的 WordPress 网站上注册时,他们实际上已被创建。最有可能的实现方式是启用“登录时创建或同步 Discourse 用户”的 WP Discourse 选项:

您可以检查该选项是否已启用,并且当用户在您的 WordPress 网站上注册时,他们是否已成功在 Discourse 中创建?

如果这不能解决问题,我可以进一步研究。不幸的是,我本地的 Discourse 和 WordPress 网站之间的连接目前无法正常工作。WordPress 网站从 Discourse 收到的任何响应都返回错误:“cURL error 61: Unrecognized content encoding type. libcurl understands deflate, gzip, br content encodings”。我相当确定这只是与我的本地服务器配置有关。我一直想解决这个问题。我今天晚些时候会研究一下这个问题。

编辑:我找到了一个临时解决方法,可以连接我的本地 WordPress 和 Discourse 网站。启用了“登录时创建或同步 Discourse 用户”的 WP Discourse 选项后,我现在可以在我的 WP 网站上注册用户,自动为他们创建 Discourse 帐户,并通过 API 将用户设置为接收某个主题的电子邮件通知。我不确定是什么原因导致了您网站上的问题。供参考,这是我正在进行的 API 调用示例。请求中的 Api-Username 设置为希望接收通知的用户在 Discourse 中的用户名:

curl -X POST "http://localhost:4200/t/9969/notifications" -H "Api-Key: $api_key" -H "Api-Username: notifyme" -F "notification_level=3"

感谢大家帮助我们解决这个问题。

我们已经追踪到问题出在 cronjobs 和发送邮件方面。

1 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.