Formulário de Contato

:information_source: Resumo Adiciona um formulário de contato no topo de qualquer tópico marcado com contact. As informações enviadas através do formulário serão enviadas para o grupo ou categoria configurada para recebê-lo.
:hammer_and_wrench: Link do Repositório https://github.com/jericson/discourse-contact-plugin
:open_book: Guia de Instalação Como instalar plugins no Discourse

Funcionalidades

Quando habilitado, o plugin Formulário de Contato coloca um formulário de contato no topo de qualquer tópico marcado com contact. Os dados enviados através do formulário são enviados para uma categoria ou grupo configurado para receber e-mails de contact_form_email.[1] Assim como formulários de contato tradicionais, não há necessidade de ter uma conta no site para enviar.

Veja o que um visitante pode ver:

Note que esta é uma postagem regular que pode ter quaisquer instruções que você queira incluir no corpo.[2] Atualmente, os nomes dos campos são codificados e nenhuma validação real é feita, mas veja a seção TODO abaixo. Após a mensagem ser enviada, ela aparecerá no feed de mensagens do grupo configurado:

Dependendo de como suas notificações por e-mail estão configuradas, os membros do grupo configurado também podem receber um e-mail do Discourse:

Configuração

Para usar este plugin, você deve configurar o e-mail de entrada para criar novos tópicos ou mensagens de grupo. Não é necessário configurar a resposta por e-mail, pois o plugin não envia e-mails de fato. Ele sequestra a API para simular e-mails de entrada. (Dito isso, a resposta por e-mail é um recurso útil!)

Em particular, este plugin requer:

  • email_in e
  • enable_staged_users

para serem habilitados.

Uma vez habilitado, qualquer tópico marcado com contact terá um formulário de contato adicionado ao outlet de plugin topic-above-posts.

Enviar para um grupo

Como as pessoas usarão este formulário para enviar suas informações pessoais, enviar os resultados para um grupo fechado é a opção mais segura.

  1. Crie um novo grupo para as pessoas que lidarão com os contatos. (Eu geralmente o chamo de “Contato” por simplicidade, mas pode ser qualquer coisa, incluindo um grupo existente.)
  2. Adicione membros que receberão informações de contato.
  3. Não marque nenhuma das opções de acesso. Este deve ser um grupo fechado.
  4. Altere a visibilidade do grupo conforme razoável para sua organização.
  5. Defina o “Endereço de e-mail de entrada personalizado” para ser o mesmo que a configuração contact_form_email. (Por padrão, é “contact@example.com”, mas pode ser configurado para aceitar e-mails reais.)

Enviar para uma categoria

Enviar para uma categoria também é possível usando a configuração de categoria “Endereço de e-mail de entrada personalizado”. Certifique-se de habilitar “Aceitar e-mails de usuários anônimos sem conta” também.

Enviar para uma categoria não é recomendado para informações de contato, no entanto! Se por algum acaso as permissões de acesso à categoria forem alteradas, isso poderá expor informações pessoais a pessoas (ou motores de busca) que não deveriam ter acesso. É muito menos provável que isso aconteça se os contatos forem enviados para mensagens de grupo em vez disso.

Limitando quem pode adicionar formulários de contato

Pode ser bastante estranho ter formulários de contato surgindo aqui e ali, então você pode querer limitar quem pode usar a tag contact. Para fazer isso, crie um novo grupo de tags:

  1. Na página /tags, selecione a chave inglesa no canto superior direito.
  2. Selecione “Gerenciar Grupos de Tags” e depois selecione “:heavy_plus_sign: Novo Grupo”.
  3. Preencha um nome apropriado (por exemplo, “Somente Staff”), adicione a tag contact e selecione “As tags são visíveis para todos, mas apenas os seguintes grupos podem usá-las”.
  4. Escolha o grupo que você deseja permitir adicionar um formulário de contato (geralmente “staff” ou “admins”) e salve o grupo de tags.

HISTÓRICO DE ALTERAÇÕES

  • 25 de abril de 2024: Lançamento Alpha.

TODO

  • Gostaria de configurar testes para garantir que nada quebre quando eu fizer alterações. Quero verificar particularmente se pessoas sem conta podem enviar seus dados.
  • Durante os testes, descobri um grande vazamento de dados. Removi essa vulnerabilidade específica, mas realmente gostaria de ajuda para testar.
  • O formulário não faz nenhuma validação. O único requisito real é que o campo de e-mail pareça um e-mail. Se alguém deixar uma resposta sem adicionar um e-mail, o formulário falha silenciosamente.
  • Não há proteção contra spam ou abuso.
  • O código é muito da qualidade de meu-primeiro-plugin, baseado em exemplos que usavam convenções desatualizadas. Quaisquer sugestões sobre estilo são bem-vindas.
  • Gosto de ter o formulário de contato associado a um tópico marcado como “contact”, mas é complicado e provavelmente desnecessário. Estou considerando adicionar uma nova rota que seja apenas o formulário de contato para simplificar.
  • Os dados de contato são armazenados no banco de dados, mas pode ser útil ter um painel de administração para ver uma lista de contatos.
  • O formulário é fixo para meus requisitos atuais, mas seria útil ter alguma flexibilidade sobre quais campos ele solicita.

  1. Essa configuração tem como padrão “contact@example.com”, mas pode ser configurada para aceitar e-mails reais. ↩︎

  2. É até possível responder ao formulário de contato, para o bem ou para o mal. ↩︎

13 curtidas

Isso não está funcionando. Você pode atualizar @jericson

Funcionando para mim.

1 curtida

Não é um tema, é um plugin. Veja Install plugins on a self-hosted site.

5 curtidas

Instalei. Adicionei meu e-mail em contact_form_email, habilitei email_in, adicionei 'everyone' em email in allowed groups, enable_staged_users. Tentei o formulário, não recebi nenhum e-mail.

2 curtidas

Ótimo negócio! Pode ajudar futuros leitores saber o que resolveu para você.

Não instalando o plugin como um tema, eu acho :wink:

1 curtida

Você pode postar algumas capturas de tela do plugin em ação? O “Formulário de Contato” pode ser modificado/configurado?

1 curtida

Com certeza! Veja a postagem editada.

Infelizmente não. Mas Pull Requests são bem-vindos!

1 curtida

Plugin bem legal. O endereço de e-mail falsificado não é exibido para o usuário final, presumo.

Correto. Eu tenho outro plugin (ainda mais rudimentar que este) para obter avaliações anônimas. Eu uso review@example.com para rotear essas mensagens para o destino apropriado. É apenas uma string.

1 curtida