| Resumo | Adiciona um formulário de contato no topo de qualquer tópico marcado com a tag contact. As informações enviadas por meio do formulário serão remetidas ao grupo ou categoria configurado para recebê-las. |
|
| Link do Repositório | https://github.com/jericson/discourse-contact-plugin | |
| Guia de Instalação | Como instalar plugins no Discourse |
Recursos
Quando ativado, o plugin Formulário de Contato coloca um formulário no topo de qualquer tópico marcado com a tag contact. Os dados enviados via formulário são remetidos a uma categoria ou grupo configurado para receber e-mails de contact_form_email.[1] Como em formulários de contato tradicionais, não é necessário ter uma conta no site para enviar.
Veja o que um visitante pode ver:
Note que se trata de uma postagem comum que pode conter quaisquer instruções que você desejar incluir no corpo.[2] Atualmente, os nomes dos campos estão codificados e nenhuma validação real é realizada, mas consulte a seção TODO abaixo. Após o envio da mensagem, ela aparecerá no feed de mensagens do grupo configurado:
Dependendo de como as 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 a entrada de e-mail 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 verdade. Ele intercepta a API para simular a entrada de e-mail. (Dito isso, a resposta por e-mail é um recurso útil!)
Em particular, este plugin exige que:
email_ineenable_staged_users
estejam ativados.
Uma vez ativados, qualquer tópico marcado com a tag contact terá um formulário de contato adicionado ao ponto de conexão 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.
- Crie um novo grupo para as pessoas que cuidarão dos contatos. (Geralmente, chamo de “Contato” por simplicidade, mas pode ser qualquer coisa, inclusive um grupo existente.)
- Adicione os membros que receberão as informações de contato.
- Não marque nenhuma das opções de acesso. Este deve ser um grupo fechado.
- Altere a visibilidade do grupo conforme razoável para sua organização.
- Defina o “Endereço de e-mail de entrada personalizado” como o mesmo da configuração
contact_form_email. (Por padrão, é “contact@example.com”).
…
Enviar para uma categoria
Enviar para uma categoria também é possível usando a configuração “Endereço de e-mail de entrada personalizado” da categoria. Certifique-se de ativar também “Aceitar e-mails de usuários anônimos sem contas”.
No entanto, enviar para uma categoria não é recomendado para informações de contato! Se, por algum acaso, as permissões de acesso na categoria forem alteradas, isso pode expor informações pessoais a pessoas (ou mecanismos 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.
Limitando quem pode adicionar formulários de contato
Pode ser bastante estranho ter formulários de contato surgindo por toda parte, então você pode querer limitar quem pode usar a tag contact. Para fazer isso, crie um novo grupo de tags:
- Na página
/tags, selecione a chave inglesa no canto superior direito. - Selecione “Gerenciar grupos de tags” e depois selecione "
Novo grupo". - Preencha um nome apropriado (por exemplo, “Apenas equipe”), adicione a tag
contacte selecione “As tags são visíveis para todos, mas apenas os seguintes grupos podem usá-las”. - Escolha o grupo que você deseja permitir que adicione um formulário de contato (geralmente “staff” ou “admins”) e salve o grupo de tags.
CHANGELOG
- 25 de abril de 2024: Lançamento alfa.
TODO
- Gostaria de configurar testes para garantir que nada quebre quando fizer alterações. Quero especialmente verificar se pessoas sem contas podem enviar seus dados.
- Durante os testes, descobri um vazamento de dados grave. Removi essa vulnerabilidade específica, mas precisaria de ajuda para testar.
- O formulário não faz nenhuma validação. A única exigência 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 do tipo
meu-primeiro-plugin, baseado em exemplos que usavam convenções desatualizadas. Qualquer sugestão sobre estilo é bem-vinda. - Gosto de ter o formulário de contato associado a um tópico marcado com “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 seria útil ter um painel de administrador para ver uma lista de contatos.
- O formulário está fixado às minhas necessidades atuais, mas seria útil ter alguma flexibilidade sobre quais campos ele solicita.
Essa configuração padrão é “contact@example.com”, mas pode ser ajustada para aceitar e-mails reais. ↩︎
É até possível responder ao formulário de contato, para o bem ou para o mal. ↩︎





