Formularios Web enviados por correo electrónico
Introducción
Esta es una introducción al uso del CGI que permite procesar formularios que envían correo para los distintos usuarios del servidor http://www.rootway.com o los distintos dominios en él alojados. Para el uso de este CGIMail es necesario conocer el uso de formularios en HTML, que puede aprender en este tutorial general de HTML.
Cada sitio web puede contener la cantidad de formularios que desee para los fines que desee, pero deberá siempre respetar la estrucutra de datos que el formulario pasa al CGIMail a la hora de hacer click en el boton de ENVIAR el formulario.
El parser (analizador de datos) del CGIMail es muy bueno. El puede analizar todos los campos input que Usted desee e incluso analizar multiple datos dentro de cada uno. Es posible colocar caracteres mayúscula/minuscula, espacios o cualquier otro caracter entre las comillas de un campo input. El CGIMail analizara las multiples entradas input con el mismo nombre y procesara todas, incluyendo aquellas que sean de los campos to, cc o bcc.
Los campos input ocultos (hidden) que se listan en este documento son reservados y no pueden ser utilizados para otro fin que no sea el aqui descripto. Por supuesto puede, por ejemplo, colocar una letra en mayuscula, y utilizarlo como campo de datos, pues serán diferenciados de los campos reservados. No está obligado a utlizar todos los campos reservados aqui listados, solo los que necesite para su formulario; no obstante, es recomendable que utilice el parámetro “next_url” y coloque una pagina orientando a la persona que ha llenado y enviado el formulario.
Al final de este documento encontrará alunos ejemplos de como se utilia el CGIMail, en caso de dudas puede cortar y pegar alguno de los ejemplos alli dados para su pagina web siempre cambiando los datos de los campos input a los de su interés.
Breve resúmen de uso
Para el formulario, primeramente deberá indicar la acción a toma (url del CGIMail) como se muestra abajo y el método en que es llamada:
<form action="http://www.rootway.com/cgi-bin/maildata.cgi" method="get">
Luego tiene toda la libertad de usar campos input en formato hidden para darle comandos de accion al CGIMail, usando las palabras reservadas que se indican en los capítulos siguientes, por ejemplo:
<input type="hidden" name="to" value="sudir@decorreo.com">
que le indica al CGIMail a quién debe enviar el correo con el resultado del formulario una ves llenado, es decir en qué dirección de correo desea recibir los datos de los formularios llenos.
Y, por último, puede usar cualquier palabra (que no sea una palabra reservada) en name= para los campos que Usted quiera. El resultado de esos campos le irán en el cuerpo del correo que recibirá, por ejemplo:
<input type="text" name="cedula">
que le enviará en el mensaje el texto cedula: 1.234.567-8
Opciones básicas
Las opciones básicas incluyen algunos campos ocultos (hidden) como ser “to”, “next_url”, “subject”, “cc”, and “bcc”.
Palabra reservada 'to'
<input type=hidden name="to" value="sunombre@sudominio.com, algunotro@sudominio.com">
El parámetro input “to” indica cuál direccion o direcciones de correo será enviado el correo con los datos del formulario. Puede utilizar multiple direcciones de correo separantolas con comas. Generalmente, Usted utilizará su direccion de correo en este campo.
Muchas instancia, como ser checkboxes, serán revisadas.
Palabra reservada 'next_url'
<input type=hidden name="next_url" value="http://www.sudominio.com/gracias.html">
El parametro de input “next_url” indica la url a la que será dirigido el usuario luego de enviar el formulario. Debe utilizar la url completa. Generalmente Usted debería crear una página de agradecimiento, en la cual le dirá al usuario que está en su sitio, que el formulario fue llenado correctamente y alguna otra cosa que entienda que deba decirle.
Palabra reservada: 'subject'
<input type=hidden name="subject" value="any subject">
El parámetro de input “subject” le dice al CGIMail cual será el Tema: que colocará en el mensaje cuando le envie el correo.
Puede imprimir el valor de un campo input dando su valor en la siguiente forma: #Nombre a imprimir#. Por ejemplo:
<input type=hidden name="subject" value="#Nombre#">
y el valor se imprimira en el campo dado dejando “Nombre” en el cabezal Tema:
Palabra reservada: 'cc'
<input type=hidden name="cc" value="someone@somewhere.com">
El parámetro de input “cc” le dice al CGIMail a quien enviar copias del mensaje. Si coloca varias direcciones, sepárelas con coma.
Varias instancias de direcciones pueden ser procesadas, por ejemplo en checkboxes.
Palabra reservada: 'bcc'
<input type=hidden name="bcc" value="someone@somewhere.com">
El parámetro de input “bcc” le dice al CGIMail a quien enviar copias ocultas. Si coloca varias direcciones, sepárelas con coma.
Varias instancias de direcciones pueden ser procesadas, por ejemplo en checkboxes.
Campos obligatorios
El sistema permite que Usted pueda asegurarse que ciertos campos han sido obligatoriamente rellenados, antes de que el formulario le sea enviado por e-mail. Podrá especificar los campos que son obligatorios y la url o página que le será mostrado al navegante en caso que los campos no estén completados donde podrá dar instrucciones adiconales al respecto de su formulario.
Palabra reservada: 'required'
<input type=hidden name="required" value="Name, Email, Alguna otra palabra input name= ">
El parámetro de input “required” le dice al CGIMail que nombres de input son requeridos en el formularios y que no pueden quedar en blanco cuando el formulario es enviado. Estos nombres de input deben ser identicos (en mayusculas/minusculas correspondientes) a lo que ha colocado como name= en cada input y pede juntar varios separándolos con comas. Los nombres de input pueden contener espacios y puede colocar un espacio luego de cada coma.
Palabra reservada: 'required_url'
<input type=hidden name="required_url" value="http://www.sudominio.com/requerido.html">
El parámetro de input “required_url” le dice al CGIMail cual es la página que se mostrará si alguno de los campos especificados en “required” ha quedado en blanco. Esta url debe ser completa, generalmente estará en su propio sitio. En esa página a la que direcciona al navegante podrá decirle en sus propias palabras cómo llenar correctamente el formulario. En su página recuerde enlacar hacia atrás para que pueda volver a llenar su formulario, aunque puede sugerir al navegante utilizar el botón hacia-atrás del navegador para recuperar los datos llenados en los demás campos en forma intacta.
Opciones de seguridad
En principio no es necesario que incluya estos parámetros en su formulario, de todas formas, ellos le permitirán a Usted evitar que alquien le use el formulario para enviarle spam a su dirección.
Palabra reservada: 'ignore_ip'
<input type=hidden name="ignore_ip" value="255.255.255.255, alguien.algunlado.com">
En este campo podrá colocar alguna dirección de un host o un nombre de host si desea que el CGIMail ignore un envío de ese determinado host. También es útil si alguien le está molestando. Puede utilizar asterisco “*” en el lugar de una parte del número IP o del nombre de dominio, y por ejemplo podría ignorar todos las sumisiones de computadoras del dominio *.com si desea.
Autorespuesta o contestador automático
Los input que se describen en esta sección permiten enviar un mensaje a quién ha llenado el formulario. Solamente el primer input (“autoresponse”) es requerido, el resto de los input le permitirán personalizar su auto respuesta, mejorando la calidad de la misma.
Palabra reservada: 'autoresponse'
<input type=hidden name="autoresponse" value="vea listado abajo">
El parámetro de input “autoresponse” le dice al CGIMail que desea automáticamente enviar una respuesta por correo a quien ha llenado el formulario. La auto-respuesta contendrá todo los datos que él ha llenado en el formulario en forma similar a la que Usted recibe. Adicionalmente, en forma automática se incluye un mensaje, de acuerdo a los siguientes mensajes pre-hechos que Ud. puede elegir:
- gracias
Le agradece por llenar el formulario y le muestra el contenido del formulario que ha sido enviado. - verifica
Le muestra el contenido del formulario que ha sido enviado y le pide que responda el e-mail para confirmar su envío original. - generica
Le muestra el contenido del formulario que ha enviado. - personalizada
Ningun mensaje es enviado, a menos que indique uno con el input “autoresponse_hidden”, el cual incluirá el contenido del formulario.
Este es el único parámetro necesario para tener auto-respuesta, pero podrá personalizar la misma utilizando algunos de los parámetros que se indican a continuación.
Palabra reservada: 'autoresponse_name'
<input type=hidden name="autoresponse_name" value="Su nombre o su empresa">
El parámetro de input “autoresponse_name” le dice al CGIMail que debe colocar en el campo “From:” del e-mail el nombre especificado en este value=.
Puede imprimir el valor de un campo input dando su valor en la siguiente forma: #Nombre a imprimir#. Por ejemplo:
<input type=hidden name="autoresponse_name" value="#Nombre#">
y el valor se imprimira en el campo dado dejando “Nombre” en el De: del mensaje de auto-respuesta.
Palabra reservada: 'autoresponse_email'
<input type=hidden name="autoresponse_email" value="usted@sudominio.com">
El parámetro de input “autoresponse_email” le dice al CGIMail que coloque en el cabezal del e-mail en el campo “Reply-to:” la dirección o direcciones de correo que coloque como value= con este parámetro. En lugar de la dirección de correo por defecto que es aquella a la cual es remitido el formulario (Ver: “to”). Puede separar multimples direcciones de correo con coma.
Palabra reservada: 'autoresponse_subject'
<input type=hidden name="autoresponse_subject" value="texto en tema de auto-respuesta">
El parámetro de input “autoresponse_subject” le dice al CGIMail que debe colocar en el cabezal del e-mail en el campo “Subject:” en lugar del tema por defecto que es aquel que está dado en el value= del parámetro “subject”.
Puede imprimir el valor de un campo input dando su valor en la siguiente forma: #Nombre a imprimir#. Por ejemplo:
<input type=hidden name="autoresponse_subject" value="#Nombre#">
y el valor se imprimira en el campo dado dejando “Nombre” en el Tema: del mensaje de auto-respuesta.
Palabra reservada: 'autoresponse_verbose'
<input type=hidden name="autoresponse_verbose" value="Yes">
El parámetro de input “autoresponse_verbose” le dice al CGIMail que no incluya el contenido del formulario en el mensaje de auto-respuesta.
<input type=hidden name="autoresponse_hidden" value="linea a ser impresa en el e-mail">
El value= de este parámetro será incluído en el cuerpo del mensaje de auto-respuesta. Esto le permite personalizar el mensaje de auto-respuesta. Puede incluir multiples lineas de input para multiples lineas de texto. Colocando value=” ” será interpretado como una línea en blanco.
Puede imprimir el valor de un campo input dando su valor en la siguiente forma: #Nombre a imprimir#. Por ejemplo:
<input type=hidden name="autoresponse_hidden" value="#Nombre#">
y el valor se imprimira en el campo dado dejando “Nombre” en el mensaje de auto-respuesta.
Etiquetas reservadas
Existen también otros campos de input que puede querer utilizar en su formulario. Estos campos permiten que el nombre y dirección de quién envía el formulario le llegen a Usted en el cabezal del mensaje (en caso que Usted quiera contestarlo o procesarlo automáticamente) y también dar un formateo al contenido del formulario que le es enviado en el mensaje a Usted.
<input type=hidden name="hidden" value="linea de texto a ser incluída en mensaje">
El parámetro de input “hidden” le dice al CGIMail que imprima el contenido del value= sin imprimir el nombre “hidden:” en el mensaje que es enviado a Usted y en la auto-respuesta.
<input type=hidden name="hidden" value="hr">
El valor “hr” utilizado en un campo “hidden” es interpretado de forma especial y resultará en que se imprimirá una linea de texto con 70 guiones.
Palabra reservada: 'Email' o 'E-mail'
<input name="Email"> Dirección de Correo
Cualquier campo input con este nombre que se llene en el formulario hará que el valor ingresado le llegue a Usted en el cabezal del mensaje en la dirección de respuesta. Las mayúsculas y minúsculas son ignoradas, así que puede escribirlo como desee. El CGIMail chequeará el contenido del campo para saber si es un formato válido de dirección de correo. En caso de no ser válida, aparecerá Invalid como nombre de la persona en el “From:” del mensaje y el campo “Reply-to:” será llenado con el valor del campo oculto “to” como una forma de enviar el mensaje nuevamente al origen.
Palabra reservada: 'Name'
<input name="Name"> Nombre
Cualquier campo de input con este nombre hará que el mensaje Usted reciba provenga de alguien con ese nombre en el cabezal del mensaje. Las mayúsculas y minúsculas son ignoradas, así que puede escribirlo como desee.
Ejemplos de formularios
Formulario simple
<!-- ======== Formulario de Simple ======== --> <FORM action="http://www.rootway.com/cgi-bin/maildata.cgi" method="get"> <INPUT type="hidden" name="to" value="sudir@decorreo.com"> <INPUT type="hidden" name="subject" value="Formulario simple"> <TABLE border="0" cellpadding="3" cellspacing="0" summary=""> <TR> <TD bgcolor="#fffaaa" align="center">Titulo del formulario</TD> </TR> <TR> <TD bgcolor="#C0D9D9"> <P>Direccion de correo <INPUT type="text" name="Email"></P> <P>Nombre <INPUT type="text" name="name"></P> <P>Detalles opcionales: <TEXTAREA name="comments" rows="4" cols="50">Poner un texto para guiar al usuario que llena el formulario. </TEXTAREA></P> <INPUT type="submit" value="Enviar"> </TD> </TR> </TABLE> </FORM> <!-- ======== End Cut Here ======== -->
Formulario complejo
<!-- ======== Formulario de Complejo ======== --> <FORM action="http://www.rootway.com/cgi-bin/maildata.cgi" method="get"> <INPUT type="hidden" name="to" value="sudir@decorreo.com"> <INPUT type="hidden" name="subject" value="Formulario complejo"> <!-- Chequea que se ingrese obligatoriamente campo Email y muestra formu.html si no se ha ingresado --> <INPUT type="hidden" name="required" value="Email"> <INPUT type="hidden" name="required_url" value="http://www.decorreo.com/error.html"> <!-- Si el formulario se llena correctamente se envia a esta pagina --> <INPUT type="hidden" name="next_url" value="http://www.decorreo.com/gracias.html"> <!-- Copia del mensaje con el formulario es enviada a esta direccion --> <INPUT type="hidden" name="cc" value="otradir@decorreo.com"> <TABLE border="0" cellpadding="3" cellspacing="0" summary=""> <TR> <TD bgcolor="#fffaaa" align="center">Titulo del formulario</TD> </TR> <TR> <TD bgcolor="#C0D9D9"> <P>Direccion de correo <INPUT type="text" name="Email"></P> <P>Nombre <INPUT type="text" name="name"></P> <P>Cedula de Identidad <INPUT type="text" name="cedula"></P> <P>Detalles opcionales: <TEXTAREA name="comments" rows="4" cols="50">Poner un texto para guiar al usuario que llena el formulario. </TEXTAREA></P> <INPUT type="submit" value="Enviar"> </TD> </TR> </TABLE> </FORM> <!-- ======== End Cut Here ======== -->
Formulario con auto-respuesta
<!-- ======== Formulario con auto-respuesta ======== --> <FORM action="http://www.rootway.com/cgi-bin/maildata.cgi" method="get"> <INPUT type="hidden" name="to" value="sudir@decorreo.com"> <INPUT type="hidden" name="subject" value="Formulario con autorespuesta"> <!-- Configuracion de autorespuesta --> <INPUT type="hidden" name="autoresponse" value="gracias"> <INPUT type="hidden" name="autoresponse_name" value="DeCorreo dot Com"> <INPUT type="hidden" name="autoresponse_email" value="sudir@decorreo.com"> <INPUT type="hidden" name="autoresponse_subject" value="Gracias por llenar el formulario"> <TABLE border="0" cellpadding="3" cellspacing="0" summary=""> <TR> <TD bgcolor="#fffaaa" align="center">Titulo del formulario</TD> </TR> <TR> <TD bgcolor="#C0D9D9"> <P>Direccion de correo <INPUT type="text" name="Email"></P> <P>Nombre <INPUT type="text" name="name"></P> <P>Detalles opcionales: <TEXTAREA name="comments" rows="4" cols="50">Poner un texto para guiar al usuario que llena el formulario. </TEXTAREA></P> <INPUT type="submit" value="Enviar"> </TD> </TR> </TABLE> </FORM> <!-- ======== End Cut Here ======== -->

