Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/03/2005, 14:35
Avatar de monoswim
monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 1 mes
Puntos: 90
Como enviar un formulario por mail ?

Bueno, para mandar los datos de un formulario a una casilla de E-Mail podemos usar la sentencia mailto:, pero como esta sentencia de HTML se ejecuta en el cliente no es lo más recomendable ya que puede fallar, además de que los navegadores suelen mostrar mensajes de alerta de seguridad (como "va a mandar datos por la web ! puede ser peligroso !") que asustan a sus usuarios. Por estas razones esta opción queda descartada...

Ahora tenemos que ver las soluciones del lado del servidor, esto significa instalar un script para que reciba los datos del formulario y los envíe a nuestra casilla de correo...Estos scripts pueden en cualquier lenguaje de servidor como ser PERL, PHP, ASP, Java, Phyton, etc...Los más conocidos son PERL (Perl o CGI), PHP o ASP. Así que para instalar uno de estos scripts lo primero que debemos hacer es verificar si nuestro servidor soporta alguno de estos lenguajes, o sea, que pueda ejecutarlos, en caso negatigo podemos usar servicios gratuitos como el de http://phantomezform.com.

En este taller voy a intentar explicar como es que se instala y se configura el FormMail.pl que es uno de los scripts (PERL o CGI) más conocidos y usados, además de ser padre de casi todos los scripts que andan dando vueltas...

1er Paso: Bajar el script.

El script lo bajamos gratuitamente de la página oficial, la cual es www.scriptarchive.com Simplemente lo buscan por FormMail y lo bajan en el formato que más deseen (.zip, .rar...)

2do Paso: Configurar el script.

Antes que nada tenemos que ver la primera línea del script, dice algo como

#!/usr/bin/perl

Esa es la dirección del intérprete de perl en el servidor, la gran mayoría de los servidores usan esa dirección, pero talvez el tuyo por alguna razón que nunca vamos a entender lo colocó en otra...Verifica que sea la correcta ! (Pregunta en tu empresa de hosting)

Ahora bien, para mandar los mails, este script utiliza un programa de servidor llamado SendMail, que también al igual que el intérprete tiene una ubicación en el servidor, esa ubicación la definimos en la variable

$mailprog = '/usr/lib/sendmail -i -t';

Como vemos la variable ya viene configurada, porque en la mayoría de los servidores tiene esa dirección, pero como en el punto anterior: Verifícalo preguntando a tu empresa de hosting.

Como segunda variable para configurar nos aparece la famosa @referer, la cual contiene los dominios que tendrán acceso a utilizar este script, si lo dejamos vacío y no colocamos nuestro dominio el script estará libre para que lo use cualquier sitio, y eso no creo que sea lo que desean !

@referers = ('scriptarchive.com','209.196.21.3');

Como ven pueden colocar el dominio, el IP, o ambos. siempre cada dominio/IP entre comillas simples y separadas por una simple coma.

Y por último tenemos @recipients, esta al igual que la anterior es una medida de seguridad, que sirve para que el script solamente envíe el E-Mail si y solo si el mail de destino pertenece a alguno de los dominios especificados en @referers. Generalmente esta variable no se toca, para que la verificación sea realizada. Quedando:

@recipients = &fill_recipients(@referers);

Y LISTO, ya está configurado el script, si bien está la variable @valid_ENV rara vez es modificada, no es muy útil.

3er Paso: Subir el script.

Para subir el script necesitamos un FTP que nos permita subir el script en MODO ASKII y que nos permita cambiarle los permisos CHMOD a 755 para que el servidor lo pueda ejecutar y que ningún usuario externo pueda escribirle.

Ahora bien, el script debe ser subido solamente a la carpeta que nuestro servidor nos haya brindado para ejecutar scripts de PERL, esta carpeta suele llamarse CGI-BIN o LOCAL-CGI

4to y ultimo paso: Realizar el formulario HTML.

Lo primero es configurar nuestra etiqueta FORM, en la cual tenemos que definir:

El método: GET o POST en mayúscula !!!, generalmente se utiliza POST por ser más seguro.

La acción: En esta se coloca al url del script como ser http:www.misitio.com/cgi-bin/FormMail.pl, cabe destacar que formmail.pl NO es lo mismo que FormMail.pl, minúsculas y mayúsculas se toman como distintas.

<form method="POST" action="http://www.misitio.com/cgi-bin/FormMail.pl">

Una vez configurada la etiqueta FORM tenemos que definir el campo oculto recipient que le dice al script cual es la/las direcciones de correo a las cuales debe mandar la información del formulario.

<input type=hidden name="recipient" value="[email protected],[email protected]">

NO ES COMPLICADO... NO ? en solo 4 pasos que se pueden llevar a cabo en unos 15 minutos ya tenemos nuestros formularios perfectamente funcionando.

Espero que les sirva y les mando un abrazo grande...

Saludos
__________________
Esteban Quintana

Última edición por monoswim; 08/03/2006 a las 17:40