Configurando uma caixa de entrada de suporte

Olá a todos, acabei de encontrar esta postagem no blog How Does Team Discourse Use Discourse?, e isto me chamou a atenção:

Qualquer pessoa pode enviar um e-mail para team@discourse.org e nós lidamos com essas interações em uma caixa de correio central do Discourse, como mensagens privadas de grupo.

Como vocês configuraram isso? Eu adoraria fazer isso para steering@somervilleyimby.org (atualmente usamos um Google Group e é bem estranho). Eu uso o Google Apps para e-mails recebidos e enviados de somervilleyimby.org, e o Mailgun para lidar com os e-mails do Discourse (por exemplo, jeff@somervilleyimby.org; estes são enviados/recebidos via discourse.somervilleyimby.org), então não entendi bem como posso configurar isso.

Alguma sugestão ou talvez um GUIA? Eu vi Configuring incoming email to create new topics or group messages, mas isso só me leva até a metade do caminho.

1 curtida

Oi. Você viu Discourse as a private email support portal

5 curtidas

Ah, legal, legal! É uma boa leitura, mas não esclarece o elemento crítico que estou perdendo:

Como faço para que steering@somervilleyimby.org acabe em um Grupo em nosso Discourse?

No momento, o domínio somervilleyimby.org está mapeado para o e-mail do Google Apps, e temos esses dois endereços:

O e-mail de entrada e saída do nosso Discourse usa discourse.somervilleyimby.org via Mailgun, e está bem configurado.

Mas como eu mapearia um endereço de e-mail no domínio principal para ser recebido por um Grupo dentro do Discourse?

Percebo que isso talvez esteja fora do escopo do próprio Discourse, mas imaginei que alguém pudesse ter uma ideia, e suspeito que existam endereços individuais person@discourse.org e também um endereço compartilhado team@discourse.org que chegue à instância do Team Discourse.

Um e-mail redirecionado para someaddress@discourse.somervilleyimby.org funcionaria?

Eu pensei nisso, ainda estou tentando juntar exatamente como eu faria essa conexão :thinking:

Olá Jeff :slightly_smiling_face:

Não tenho 100% de certeza se estou te entendendo, mas uso o mail-receiver no meu site auto-hospedado para lidar com os e-mails recebidos, habilito o recebimento de e-mails nas configurações de administrador e, em seguida, defino um endereço de e-mail nas configurações do grupo/categoria para onde quero que algo vá.

Alguma dessas coisas parece útil?

3 curtidas

O problema com o receptor de e-mail, no entanto, é que ele lida com um único domínio.

Jeff atualmente usa um subdomínio para a instância, enquanto deseja que uma caixa de correio no domínio raiz também seja tratada.

1 curtida

Então ele precisaria configurar o receptor de e-mail em um subdomínio diferente e, em seguida, encaminhar o e-mail do real para o do discourse. (isso deve ser dividido em seu próprio tópico)

2 curtidas

Obrigado a todos, e agradeço por separarem isso em um tópico próprio.

@JammyDodger isso definitivamente parece resolver o problema, e @pfaffman parece estar certo sobre como eu poderia lidar com a configuração do meu domínio + subdomínio.

Se alguém estiver curioso, o subdomínio é o que o Mailgun sugere como melhor prática se você já tem e-mail em seu domínio gerenciado por outra entidade (Google Apps, no nosso caso).

Resumindo: E-mail continua muito difícil.

2 curtidas

Então descobri que posso usar as regras de roteamento do Gmail para redirecionar e-mails para steering@discourse.somervilleyimby.org, e o Mailgun então envia isso para o endpoint do meu plugin Mailgun, /mailgun/incoming, mas eles retornam erros 422 Unprocessable Entity :thinking:

Acho que terei que mergulhar um pouco no código do plugin…

Se você não estiver usando o Mailgun para receber e-mails para o subdomínio do seu fórum, eu excluiria os MXs do Mailgun e usaria o Configurar entrega direta de e-mail de entrada para sites auto-hospedados.

Então estou usando o Mailgun para isso, o que claramente complica as coisas. Mas também não quero lidar com meu próprio e-mail porque sou só eu cuidando da administração.

Não obstante, vocês me indicaram a direção certa!

/me suspira

Claro, tudo isso provavelmente seria menos complicado se a atualização para o Discourse 3.x não parecesse quebrar completamente o e-mail de entrada através do plugin Mailgun :disappointed:

Um erro que estou vendo

Dos logs:

# 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 (Can't verify CSRF token authenticity.)
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 (Can't verify CSRF token authenticity.)
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

Vou ver se há outros relatos semelhantes, mas se algum de vocês tiver ideias, eu as recebo!

Entendi! Ok, legal, então, primeiro, a atualização para o Discourse v3.x + meu plugin Mailgun desatualizado atrapalhou.

De qualquer forma, o COMO:

  1. Configure uma Rota de Recebimento do Mailgun para o endereço ou padrão RegEx para receber e-mails de entrada
  2. Visite o Google Admin
  3. Na navegação à esquerda, expanda “Apps”, depois “Google Workspace” e clique em “Gmail” (este link pode funcionar?)
  4. Clique em Roteamento padrão
  5. Crie uma rota que mapeie o endereço ou padrão em seu domínio principal para seu subdomínio com tecnologia Mailgun:
4 curtidas

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