#!/usr/bin/perl
# Script para enviar email desde HTML (formulario, etc.)
# Parametros:
# mailfrom Direccion que envia el mail
# mailto Direccion que recibira el formulario:
# subject Subject (Ej. Formulario enviado por internet)
# redir Pagina a la que quieres que se redireccione despues de terminar.
# silent Imprimir mensaje o no
$| = 1; # Para que Perl no utilize su buffer
use CGI qw/:standard/; # Usar el GCI.pm module
use strict 'vars';
my($admin_mail) = "nick\@datacont.com"; # Para envair los errores
my ($mail_body, $params, $mailfrom, $mailto);
my ($redir) = param('redir');
my ($silent) = param('silent');
my ($refresh_time) = 3;
if ($silent) { $refresh_time = 0; }
if ($redir) { print header(-expires=>"+10m", -refresh=>"$refresh_time; URL=$redir"); }
else { print header(-expires=>"+10m"); }
print start_html(-title=>"Mail-Form",
-BGCOLOR=>'FFFFFF' );
print "\n\n";
### debug #####################################################################
#my ($key_form);
#foreach $key_form (param()) { print("$key_form\=",param($key_form),"
\n"); }
###############################################################################
$mailfrom=param('mailfrom');
$mailto=param('mailto');
if (param('form_id') eq 'form-01') {
$mail_body = param('nombre_padre') . "," .
param('nacionalidad_padre') . "," .
param('id_padre') . "," .
param('domicilio_padre') . "," .
param('nombre_madre') . "," .
param('nacionalidad_madre') . "," .
param('id_madre') . "," .
param('domicilio_madre') . "," .
param('nombres_hijos') . "," .
param('edades_hijos') . "," .
param('destinos_viaje') . "," .
param('observaciones') . "," .
param('telefono') . "," .
param('email');
}
elsif (param('form_id') eq 'form-02') {
$mail_body = param('solicitante') . "," .
param('nacionalidad') . "," .
param('id') . "," .
param('domicilio') . "," .
param('nombres_hijos') . "," .
param('edades_hijos') . "," .
param('destinos_viaje') . "," .
param('observaciones') . "," .
param('telefono') . "," .
param('email');
}
elsif (param('form_id') eq 'form-03') {
$mail_body = param('nombre_vendedor_pn') . "," .
param('id_vendedor_pn') . "," .
param('estado_civil_vendedor_pn') . "," .
param('ocupacion_vendedor_pn') . "," .
param('nacionalidad_vendedor_pn') . "," .
param('nombre_conyuge_vendedor_pn') . "," .
param('id_conyuge_vendedor_pn') . "," .
param('domicilio_vendedor_pn') . "," .
param('razon_vendedor_pj') . "," .
param('ruc_vendedor_pj') . "," .
param('datos_inscrip_vendedor_pj') . "," .
param('repr_legal_vendedor_pj') . "," .
param('id_repr_legal_vendedor_pj') . "," .
param('nombre_comprador_pn') . "," .
param('id_comprador_pn') . "," .
param('estado_civil_comprador_pn') . "," .
param('ocupacion_comprador_pn') . "," .
param('nacionalidad_comprador_pn') . "," .
param('nombre_conyuge_comprador_pn') . "," .
param('razon_comprador_pj') . "," .
param('domicilio_comprador_pn') . "," .
param('id_conyuge_comprador_pn') . "," .
param('datos_inscrip_comprador_pj') . "," .
param('repr_legal_comprador_pj') . "," .
param('id_repr_legal_comprador_pj') . "," .
param('telefono') . "," .
param('email');
}
else {
$mail_body = "Formulario enviado por Internet\n\n";
# llenamos mail_body con todos los variables ...
foreach $params (param()) {
if (!($params eq 'mailfrom' || $params eq 'mailto' ||
$params eq 'subject' || $params eq 'redir' ||
$params eq 'Submit' || $params eq 'silent' )) {
$mail_body .= "$params\=" . param($params) . "\n";
}
}
}
if (defined $mailto) {
if (!defined $mailfrom) {
$mailfrom = "POSTMASTER";
}
send_mail($mailfrom, $mailto, param('subject'), $mail_body);
if (!$silent) {
print "Formulario Enviado
\n",
"! Gracias por utilizar nuestro servicio !
\n";
if ($redir) {
print "
<Regresar>";
}
}
}
else {
print "No hay destinatario definido!
\n",
"Revise su formulario e intente de Nuevo\n";
}
print end_html; # Fin de HTML
exit;
###############################################################################
### send_mail ###
###############################################################################
sub send_mail { # Envia e-mail con los siguentes argumentos:
# $from Ej: Sender o solo e-mail
# $to Ej: Receiver o solo e-mail
# $subject
# $message
my ($from, $to, $subject, $message) = @_;
open(SENDMAIL, "|/usr/sbin/sendmail -oi -t -odq") or
die "No se puede abrir el programa de correo";
print SENDMAIL "From: $from\n", "To: $to\n", "Subject: $subject\n\n";
print SENDMAIL $message;
close(SENDMAIL);
} # Fin de send_mail
###############################################################################
### get_url_domain ###
###############################################################################
sub get_url_domain { # Devuelve el domain del script url
# Ej: http://www.log4web.com/cgi-bin/mailform.cgi
# devuelve log4web.com
my($absolute_url);
$_ = url();
$absolute_url = url(-absolute=>1);
s/$absolute_url//;
s/http:\/\/www.//;
s/http:\/\///;
return $_;
}