Redirigir el formulario "contáctenos" a diferentes direcciones de correo electrónico [cerrado]

Tengo un solo formulario de contacto y lo que me gustaría hacer es usar este formulario único como contact.html (no copias múltiples de este formulario) en todas partes de mi sitio web, ya que mi sitio tiene diferentes secciones de contacto según el departamento.

Digamos que el formulario de contacto para marketing debe enviarse por correo electrónico a marketing@mydomian.com, el formulario de contacto para ventas debe enviarse por correo electrónico a sales@mydomian.com, el formulario de contacto de recursos humanos debe enviarse por correo electrónico a hr@mydomain.com.

¿Cómo puedo usar el formulario único mientras redirijo el envío a la dirección de correo electrónico del departamento correspondiente?

Estoy usando FormMail.pl Versión 3.14m1 para el envío de correos electrónicos.

preguntado el 12 de junio de 12 a las 15:06

Hay muchas formas: basarlo en la URL, el título de la página o un input type="hidden" valor con un ID de departamento para indicar el destinatario previsto. -

2 Respuestas

En el ejemplo 4 de este documento hay una explicación de cómo hacerlo si puede establecer un campo oculto. Esta es probablemente la mejor solución.


Si desea el mismo formulario para todas las diferentes partes de su sitio web y input type="hidden" no trabajará. Tendrás que comprobar la URL de referencia.

Probablemente ya haya editado la sección de configuración del script perl. Esto es lo que parece. No debe cambiar nada más allá del final de esta sección.

# USER CONFIGURATION SECTION
# --------------------------
# Modify these to your own settings. You might have to
# contact your system administrator if you do not run
# your own web server. If the purpose of these
# parameters seems unclear, please see the README file.
#
BEGIN
{

Todavía podría hacer la configuración como lo hicieron en el ejemplo mencionado anteriormente:

%recipient_alias   = (
   'hr' => 'hr@mydomain.com',
   'sales'  => 'sales@mydomian.com',
   'marketin' => 'marketing@mydomian.com',
);

Sin embargo, si no hay un campo oculto, tendremos que cambiar un poco las cosas:

$ENV{'HTTP_REFERER'} =~ m!mydomain.com/(\w+)/contact\.html/!;
@recipients = ($recipient_alias{$1});

He agregado una expresión regular para averiguar de qué departamento proviene el formulario de contacto de la solicitud. Supongo que la URL se parece a http://www.mydomain.com/sales/contact.html. La expresión regular atrapará el departamento y lo pondrá en $1 donde podemos usarlo como una clave para el %recipient_alias picadillo. Sacamos el valor de esa llave en el @recipients formación.

Asumí que esto se usará si no hay un campo oculto para el alias. Si no funciona, debe cambiar el nombre del hash.

Encontré el código para FormMail.pl aquí. Espero que sea el correcto.

Respondido el 12 de junio de 12 a las 16:06

Gracias por la rápida respuesta. Lo intentaré y te haré saber si está funcionando - futuro

hola donde esta $ENV{'HTTP_REFERER'} =~ m!mydomain.com/(\w+)/contact\.html/!; @destinatarios = ($destinatario_alias{$1}); la parte debe insertarse en el archivo .pl y cómo hacer la condición para cada url. soy nuevo en cgi o perl. - futuro

Solo ponlo donde el %recipient_alias y @recipients Los valores son ahora mismo. Debe estar en la mitad superior un poco por debajo del BEGIN parte que publiqué en la respuesta. No edite debajo de la configuración si no sabes lo que estás haciendo, sin embargo. - Simbabque

@Widor ha ofrecido algunas sugerencias en su comentario y una de ellas puede ser la mejor para usted.

Pero creo que puede ser útil comprobar el Referer encabezado para ver de qué página proviene la solicitud. Me imagino que podrá determinar un destinatario apropiado a partir de eso.

Respondido el 12 de junio de 12 a las 16:06

cómo usar una referencia, ¿hay algún ejemplo? soy nuevo en perl - futuro

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.