| Resumen | Añade un formulario de contacto en la parte superior de cualquier tema etiquetado como contact. La información enviada a través del formulario se remitirá al grupo o categoría configurado para recibirla. |
|
| Enlace al repositorio | https://github.com/jericson/discourse-contact-plugin | |
| Guía de instalación | Cómo instalar plugins en Discourse |
Características
Cuando está habilitado, el plugin Formulario de contacto coloca un formulario en la parte superior de cualquier tema etiquetado como contact. Los datos enviados mediante el formulario se envían a una categoría o grupo configurado para recibir correos desde contact_form_email.[1] Al igual que los formularios de contacto tradicionales, no es necesario tener una cuenta en el sitio para enviar información.
Así es como podría verse para un visitante:
Tenga en cuenta que se trata de una publicación normal que puede incluir cualquier instrucción que desee añadir en el cuerpo.[2] Actualmente, los nombres de los campos están codificados y no se realiza ninguna validación real, pero consulte la sección TODO más abajo. Una vez enviado el mensaje, aparecerá en el flujo de mensajes del grupo configurado:
Dependiendo de cómo estén configuradas sus notificaciones por correo electrónico, los miembros del grupo configurado también podrían recibir un correo de Discourse:
Configuración
Para utilizar este plugin, debe configurar la recepción de correos electrónicos para crear nuevos temas o mensajes de grupo. No es necesario configurar la respuesta por correo electrónico, ya que el plugin en realidad no envía correos; intercepta la API para simular la entrada de correos. (Dicho esto, la respuesta por correo electrónico es una función muy útil).
En particular, este plugin requiere que estén habilitadas las siguientes opciones:
email_inyenable_staged_users
Una vez activadas, cualquier tema etiquetado como contact tendrá un formulario de contacto añadido al punto de salida del plugin topic-above-posts.
Enviar a un grupo
Dado que las personas utilizarán este formulario para enviar información personal, enviar los resultados a un grupo cerrado es la opción más segura.
- Cree un nuevo grupo para las personas que gestionarán los contactos. (Por lo general, lo llamo “Contacto” por simplicidad, pero puede ser cualquier nombre, incluido un grupo existente.)
- Añada los miembros que recibirán la información de contacto.
- No active ninguna de las opciones de acceso. Este debe ser un grupo cerrado.
- Cambie la visibilidad del grupo según sea razonable para su organización.
- Establezca la “Dirección de correo entrante personalizada” igual que la configuración
contact_form_email. (Por defecto, es “contact@example.com”).
…
Enviar a una categoría
También es posible enviar a una categoría utilizando la configuración de “Dirección de correo entrante personalizada” de la categoría. Asegúrese de habilitar también “Aceptar correos de usuarios anónimos sin cuenta”.
¡Sin embargo, no se recomienda enviar información de contacto a una categoría! Si por alguna razón los permisos de acceso a la categoría cambian, podría exponer información personal a personas (o motores de búsqueda) que no deberían tener acceso. Es mucho menos probable que esto ocurra si los contactos se envían a mensajes de grupo.
Limitar quién puede añadir formularios de contacto
Podría resultar bastante extraño tener formularios de contacto apareciendo por todas partes, así que quizás desee limitar quién puede usar la etiqueta contact. Para ello, cree un nuevo grupo de etiquetas:
- Desde la página
/tags, seleccione la llave inglesa en la esquina superior derecha. - Seleccione “Gestionar grupos de etiquetas” y luego seleccione "
Nuevo grupo". - Rellene un nombre apropiado (por ejemplo, “Solo personal”), añada la etiqueta
contacty seleccione “Las etiquetas son visibles para todos, pero solo los siguientes grupos pueden usarlas”. - Elija el grupo que desea permitir para añadir un formulario de contacto (normalmente “staff” o “admins”) y guarde el grupo de etiquetas.
REGISTRO DE CAMBIOS
- 25 de abril de 2024: Lanzamiento alfa.
PENDIENTES
- Me gustaría configurar pruebas para asegurarme de que nada se rompa cuando realice cambios. En particular, quiero verificar que las personas sin cuenta puedan enviar sus datos.
- Durante las pruebas, descubrí una fuga importante de datos. Eliminé esa vulnerabilidad específica, pero realmente necesito ayuda para realizar pruebas.
- El formulario no realiza ninguna validación. El único requisito real es que el campo de correo electrónico parezca una dirección de correo válida. Si alguien deja una respuesta sin añadir un correo electrónico, el formulario falla silenciosamente.
- No hay protección contra spam o abuso.
- El código es de calidad muy básica, tipo “mi-primer-plugin”, basado en ejemplos que utilizaban convenciones obsoletas. Cualquier sugerencia sobre estilo es bienvenida.
- Me gusta que el formulario de contacto esté asociado a un tema etiquetado como “contact”, pero es complicado y probablemente innecesario. Estoy considerando añadir una nueva ruta que sea simplemente el formulario de contacto por simplicidad.
- Los datos de contacto se almacenan en la base de datos, pero podría ser útil tener un panel de administración para ver una lista de contactos.
- El formulario está fijo según mis requisitos actuales, pero sería útil tener cierta flexibilidad sobre qué campos solicita.
Esa configuración predetermina “contact@example.com”, pero puede ajustarse para aceptar direcciones de correo reales. ↩︎
Incluso es posible responder al formulario de contacto, para bien o para mal. ↩︎





