Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/01/2002, 18:52
Silver
 
Fecha de Ingreso: noviembre-2001
Ubicación: México DF
Mensajes: 128
Antigüedad: 23 años
Puntos: 0
Multiples recipients

Hola amigos...
tengo el siguiente código que me envía un email a un destinatario... todo funciona bien, pero quiero agregarle un ciclo para que en el email se envíen todos los campos definidos en el formulario que llama al CGI... en otras palabras necesito agregarle un FOR imprimiento el contenido de $FORM, pero por mi desconocimiento de Perl no puedo hacer... gracias de antemano y me gustaría arreglar este y no instalar otro, pues mi servidor es bien problematico con la autorizacion de los CGI...
Gracias y suerte,
Silver.

#!/usr/bin/perl -- -*-perl-*-

$mailprog = '/usr/sbin/sendmail';

# Asigna el recipient a la variable
$recipient = $ARGV[0] ;

# Toma las entradas del formulario en la variable $buffer
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});

# Separa los campos y sus valores
@pairs = split(/&/, $buffer);

foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);

# Quita los simbolos + y %-
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

# Para cuestiones de proteccion. No hace falta si se
# usa sendmail, pero es muy importante si se usa
# UCB mail (aka mailx).
# $value =~ s/~!/ ~!/g;

$FORM{$name} = $value;
}

# Abre el sendmail para el recipient
open (MAIL, "|$mailprog $recipient") || die "No puedo abrir $mailprog!\n";

# Construye el correo en formato HTML
print MAIL "To: $recipient\n";
print MAIL "Subject: $FORM{'subject'}\n";
print MAIL "From: ANTILLAS-EXPRESS\n";
print MAIL "Content-type: text/html\n\n";
print MAIL "<HTML><BODY BGCOLOR='#FFFFFF'>\n";
print MAIL "<B>CLIENTE: </B>$FORM{'realname'}<br>\n";
print MAIL "<B>EMAIL: </B> <a href='mailto:$FORM{'username'}'>$FORM{'username '}</A><br>\n";
print MAIL "<B>SERVICIO: </B>$FORM{'subject'}<br>\n";
print MAIL "------------------------------------------------<br>\n";
print MAIL "<B>DETALLES:</B><br>\n";