Habilitando reply_by_email

Configurei nosso servidor de e-mail para encaminhar e-mails para o nosso Discourse via HTTP através da API, e isso funciona. Agora quero habilitar reply_by_email para que os usuários possam responder diretamente às mensagens.

Estou, portanto, tentando habilitar o reply_by_email, mas o Discourse rejeita minha solicitação:

discourse(prod)> SiteSetting.reply_by_email_address
=> "reply+%{reply_key}@<nosso-domínio-válido>.de"
discourse(prod)> SiteSetting.email_in
=> true
discourse(prod)> SiteSetting.reply_by_email_enabled = true
lib/site_settings/type_supervisor.rb:271:in `validate_value': reply_by_email_enabled: Você deve habilitar o modo manual, o POP3 polling ou ter um custom mail poller habilitado antes de habilitar o reply by email. (Discourse::InvalidParameters)
    from lib/site_settings/type_supervisor.rb:177:in `to_db_value'
    from lib/site_setting_extension.rb:623:in `add_override!'
    from lib/site_setting_extension.rb:990:in `block in setup_methods'
    from (discourse):15:in `<main>'

Alguém pode ajudar?

Obrigado!
Hans

Eu começaria com esta parte da resposta que você recebeu: Você deve habilitar a pesquisa manual, POP3 ou ter um pesquisador de e-mail personalizado habilitado antes de habilitar a resposta por e-mail

Isso sugere que talvez você não tenha configurado o POP3 ou o mail-receiver antes de tentar isso. (Você provavelmente quer o mail-receiver.)

Nem tenho certeza de onde você pode ter encontrado esses comandos do Rails, porque ambos os processos usariam as configurações do site de Administrador:

Isso está correto - não configurei nenhum dos dois, mas configurei nosso servidor de e-mail Postfix para encaminhar e-mails para o Discourse através de sua API. Não tenho certeza se essa é uma configuração suportada, mas realmente gostaria de evitar executar outro servidor de e-mail (mail-receiver), se possível.

Não encontro a configuração “Reply by email enabled” na minha seção de administração:

É possível que o uso do console rails tenha estragado as configurações de administração?

Eu mesmo uso o mail-receiver, então uma configuração Postfix+API está além de mim, mas observe que a tela em que você está é uma subseção apenas para “e-mails que são enviados aos seus membros.”

As configurações que mencionei para resposta por e-mail são encontradas em Admin → Todas as configurações do site → E-mail:

(Existem muitas configurações no Discourse e elas nem sempre são agrupadas da maneira que você esperaria.)

Obrigado, @ToddZ - Agora encontrei a configuração, mas não consigo ativá-la e a mensagem de erro é a mesma de quando uso o console Rails:

Com base na descrição do que você faz e na descrição da configuração, manual_polling_enabled pode ser o que você procura.

1 curtida

A configuração “Manual polling enabled” também é encontrada em Admin → Todas as configurações do site → Email.

E como aparentemente não consigo dormir, investiguei um pouco e vi pouquíssimos casos de pessoas tentando configurar email recebido via API. Caso seja útil para você à medida que prossegue, eis o que encontrei:

(vários links)

Enquanto pesquisava, o Discobot apresentou esta informação, talvez desatualizada:

Você pode usar a API do Discourse para lidar com e-mails recebidos sem depender do contêiner mail-receiver. O endpoint /admin/email/handle_mail aceita o conteúdo bruto do e-mail via POST, permitindo que você envie e-mails diretamente para o Discourse usando um script ou integração personalizada. Este método contorna a necessidade de polling SMTP ou do contêiner mail-receiver.

Por exemplo, você pode enviar um e-mail para o Discourse usando um comando curl com o parâmetro email contendo o conteúdo bruto do e-mail. Essa abordagem é comumente usada em configurações personalizadas de entrega de e-mail, especialmente ao usar serviços como AWS Lambda ou outras funções serverless.

Saiba mais sobre o endpoint da API na documentação da API do Discourse.

(…Não encontrei nada sobre isso na documentação da API.)

2018: Este tópico não parece ter tido uma resolução.

2018: Esta postagem refere-se a um guia de e-mail – referenciando linguagem que não existe mais lá – e também recomenda: “A maneira mais fácil de fazer a resposta por e-mail funcionar é usar o template do contêiner mail-receiver, em vez de tentar trabalhar com todos os tipos de APIs variadas dos diferentes provedores.”

2022: O parâmetro email seria alterado para email_encoded.

2022: Outra recomendação para apenas usar o mail-receiver.

2 curtidas

@ToddZ Isso funcionou, muito obrigado!

discourse(prod)> SiteSetting.manual_polling_enabled = true
=> true
discourse(prod)> SiteSetting.reply_by_email_enabled = true
=> true
2 curtidas

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