嘿,各位,我刚看到这篇博文 https://meta.discourse.org/t/how-does-team-discourse-use-discourse/82176,其中有句话让我印象深刻:
任何人都可以发送邮件至 team@discourse.org,我们会将这些互动处理在一个中央 discourse 邮箱中,作为私信群组。
你们是怎么设置的?我非常想为 steering@somervilleyimby.org 这样做(我们目前使用 Google Group,感觉很笨拙)。我使用 Google Apps 来处理 somervilleyimby.org 收发的所有邮件,并使用 Mailgun 来处理 Discourse 的邮件(例如,jeff@somervilleyimby.org;这些邮件通过 discourse.somervilleyimby.org 发送/接收),所以我不太清楚如何设置。
有什么建议或者教程吗?我看到了 https://meta.discourse.org/t/configure-incoming-email-to-create-new-topics-or-group-messages/62977,但这只解决了一部分问题。
1 个赞
HAWK
(Hawk)
2
5 个赞
太好了!这篇内容写得很好,但没有阐明我遗漏的关键要素:
我该如何将 steering@somervilleyimby.org 邮箱地址指向 Discourse 中的一个群组?
目前,somervilleyimby.org 域名已映射到 Google Apps 邮箱,我们有两个地址:
通过 Mailgun,我们 Discourse 的入站和出站邮件使用 discourse.somervilleyimby.org,并且配置良好。
但是,如何将主域名的邮箱地址接收到 Discourse 内部的群组中呢?
我意识到这可能超出了 Discourse 本身的范围,但我想也许有人会有想法,而且我怀疑是否存在单独的 person@discourse.org 地址,同时还有一个共享的 team@discourse.org 地址,该地址会进入 Team Discourse 的实例。
hosch
(Holger Schmermbeck)
4
我也有这么想过,但还在努力弄清楚具体要怎么接线:thinking:
嗨 Jeff 
我不确定我是否完全理解你的意思,但在我的自托管站点上,我使用 mail-receiver 来处理传入的电子邮件,并在管理员设置中启用电子邮件接收,然后为我想要将内容发送到的组/类别设置一个电子邮件地址。
这些信息对你有帮助吗?
3 个赞
Stephen
(Stephen)
7
邮件接收器的问题在于它只能处理单个域名。
Jeff 目前为实例使用了一个子域名,但同时希望根域名下的邮箱也能被处理。
1 个赞
pfaffman
(Jay Pfaffman)
8
所以他需要在不同的子域上设置邮件接收器,然后将邮件从真实的域转发到 discourse 域。(这应该会分成一个单独的主题)
2 个赞
感谢大家,也很高兴能将这个问题单独列为一个主题。
@JammyDodger,这听起来确实能解决问题,@pfaffman 的建议关于我如何处理域名+子域名设置,听起来也很有道理。
如果有人好奇的话,子域名是 Mailgun 建议的最佳实践,如果你的域名邮件已经由其他实体(在本例中是 Google Apps)处理的话。
总而言之:邮件处理仍然非常困难。
2 个赞
所以我发现我可以使用 Gmail 路由规则将邮件重新路由到 steering@discourse.somervilleyimby.org,然后 Mailgun 会将其 POST 到我的 Mailgun 插件的端点 /mailgun/incoming,但它们会抛出 422 Unprocessable Entity 错误 
看来我得深入研究一下插件代码了……
pfaffman
(Jay Pfaffman)
11
如果您不使用 Mailgun 来接收论坛子域名的邮件,我建议删除 Mailgun 的 MX 记录,并使用 为自托管网站配置直接投递入站邮件。
因此,我正在使用 Mailgun 来处理此事,这显然使事情复杂化了。但实际上我也不想自己处理电子邮件,因为只有我一个人负责行政工作。
尽管如此,你们还是给我指明了正确的方向!
/me 叹气
当然,如果升级到 Discourse 3.x 没有完全破坏通过 Mailgun 插件接收电子邮件的功能,这一切可能都会简单一些 
我看到的错误
从日志中:
# env tab
hostname discourse-app
process_id 9406
application_version 3030a538192252c9d29e4fb763d31810327f370a
HTTP_HOST discourse.somervilleyimby.org
REQUEST_URI /mailgun/incoming
REQUEST_METHOD POST
HTTP_USER_AGENT Go-http-client/2.0
HTTP_ACCEPT */*
HTTP_X_FORWARDED_FOR <redacted>
HTTP_X_REAL_IP <redacted>
time 2:59 pm
# info
Message (27 copies reported)
ActionController::InvalidAuthenticityToken (无法验证 CSRF 令牌的真实性。)
lib/middleware/omniauth_bypass_middleware.rb:74:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:366:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:228:in `call'
Backtrace
actionpack (7.0.3.1) lib/action_controller/metal/request_forgery_protection.rb:251:in `handle_unverified_request'
actionpack (7.0.3.1) lib/action_controller/metal/request_forgery_protection.rb:284:in `handle_unverified_request'
actionpack (7.0.3.1) lib/action_controller/metal/request_forgery_protection.rb:273:in `verify_authenticity_token'
activesupport (7.0.3.1) lib/active_support/callbacks.rb:400:in `block in make_lambda'
activesupport (7.0.3.1) lib/active_support/callbacks.rb:199:in `block (2 levels) in halting'
actionpack (7.0.3.1) lib/abstract_controller/callbacks.rb:34:in `block (2 levels) in <module:Callbacks>'
activesupport (7.0.3.1) lib/active_support/callbacks.rb:200:in `block in halting'
activesupport (7.0.3.1) lib/active_support/callbacks.rb:595:in `block in invoke_before'
activesupport (7.0.3.1) lib/active_support/callbacks.rb:595:in `each'
activesupport (7.0.3.1) lib/active_support/callbacks.rb:595:in `invoke_before'
Env
HTTP HOSTS: discourse.somervilleyimby.org
# backtrace
Message (26 copies reported)
ActionController::InvalidAuthenticityToken (无法验证 CSRF 令牌的真实性。)
lib/middleware/omniauth_bypass_middleware.rb:74:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:366:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:228:in `call'
Backtrace
actionpack (7.0.3.1) lib/action_controller/metal/request_forgery_protection.rb:251:in `handle_unverified_request'
actionpack (7.0.3.1) lib/action_controller/metal/request_forgery_protection.rb:284:in `handle_unverified_request'
actionpack (7.0.3.1) lib/action_controller/metal/request_forgery_protection.rb:273:in `verify_authenticity_token'
activesupport (7.0.3.1) lib/active_support/callbacks.rb:400:in `block in make_lambda'
activesupport (7.0.3.1) lib/active_support/callbacks.rb:199:in `block (2 levels) in halting'
actionpack (7.0.3.1) lib/abstract_controller/callbacks.rb:34:in `block (2 levels) in <module:Callbacks>'
activesupport (7.0.3.1) lib/active_support/callbacks.rb:200:in `block in halting'
activesupport (7.0.3.1) lib/active_support/callbacks.rb:595:in `block in invoke_before'
activesupport (7.0.3.1) lib/active_support/callbacks.rb:595:in `each'
activesupport (7.0.3.1) lib/active_support/callbacks.rb:595:in `invoke_before'
Env
HTTP HOSTS: discourse.somervilleyimby.org
我去看看有没有其他类似的报告,但如果你们有什么想法,我非常欢迎!
明白了!好的,很酷,所以首先,升级到 Discourse v3.x + 我过时的 Mailgun 插件挡了路。
无论如何,方法如下:
- 设置一个 Mailgun 接收路由 来接收传入电子邮件的地址或正则表达式模式
- 访问 Google 管理控制台
- 在左侧导航中,展开“应用”,然后展开“Google Workspace”,然后点击 “Gmail”(此链接可能有效?
- 点击 默认路由
- 创建一个路由,将主域上的地址或模式映射到您的 Mailgun 驱动的子域:
4 个赞
system
(system)
关闭
15
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.