Foros del Web » Programación para mayores de 30 ;) » Programación General »

Urgente Ayuda! Problema Con Formmail

Estas en el tema de Urgente Ayuda! Problema Con Formmail en el foro de Programación General en Foros del Web. Hola a todos, me comunico con ustedes ya que son la comunidad mas grande y creo que son los unicos que me vana poder ayudar.... ...
  #1 (permalink)  
Antiguo 25/11/2006, 13:38
 
Fecha de Ingreso: noviembre-2006
Mensajes: 4
Antigüedad: 17 años, 6 meses
Puntos: 0
Urgente Ayuda! Problema Con Formmail

Hola a todos, me comunico con ustedes ya que son la comunidad mas grande y creo que son los unicos que me vana poder ayudar....
Sinceramente tengo u inconveniente urgente con FormMail.CGI, necesito que el mail ke se envia se envie en formato HTML y no como texto... provè detodo pero no lo puedo lograr, esto es para una pagina de mi trabajo y lña tengo ke terminar antes del viernes que viene sino se pone en juego mi trabajo.... HELPME!!!!!
La empresa usa solamente CGI por eso no puedo hacer nada en PHP y esto me limita muchisismo. probè colocando Content Type y todo eso pero me lo escrebe como texto en el mail no toma ese valor. sinceramente ya no se que hacer, hace un mes que estoy con esto y no o logro sacar adelante... por favor espero su ayuda. . . aqui les dejo la parte de mi FormMail en donde escribe el mail aver si me pueden decir en donde coloco el conbtent type o que es lo que hay ke modificar. . . DEsde ya muchas gracias a todos. . . .


sub send_mail {
# Localize variables used in this subroutine. #
local($print_config,$key,$sort_order,$sorted_field ,$env_report);

# Open The Mail Program

if ($Config{'pgp'} =~ /\w/)
{ open (MAIL, "|/etc/support/pgpencrypt $Config{'pgp'}"); }
elsif ($Config{'pgp_key'} =~ /\w/)
{ open (MAIL, "|/etc/support/pgpencrypt $Config{'pgp_key'}"); }
else
{ open(MAIL,"|$mailprog -t"); }

$Config{'subject'} = remove_newlines_and_other_nasties($Config{'subject '});
$Config{'realname'} = remove_newlines_and_other_nasties($Config{'realnam e'});

# addresses are now validated before they get this far
#$Config{'email'} = validated_email_syntax($Config{'email'});
#$Config{'recipient'} = validated_email_syntax($Config{'recipient'});
#$Config{'ccrecipient'} = validated_email_syntax($Config{'ccrecipient'});
#$Config{'bccrecipient'} = validated_email_syntax($Config{'bccrecipient'});

print MAIL "To: $Config{'recipient'}\n";
if ($Config{'ccrecipient'})
{ print MAIL "CC: $Config{'ccrecipient'}\n"; }
if ($Config{'bccrecipient'})
{ print MAIL "BCC: $Config{'bccrecipient'}\n"; }
print MAIL "From: $Config{'email'} ($Config{'realname'})\n";


# Check for Message Subject 159

if ($Config{'subject'}) { print MAIL "Subject: $Config{'realname'} $Config{'subject'}\n\n" }
else { print MAIL "Subject: WWW Form Submission\n\n" }

print MAIL "Below is the result of your feedback form. It was submitted by\n";
print MAIL "$Config{'realname'} ($Config{'email'}) on $date\n";
print MAIL "-" x 75 . "\n\n";

if (@Print_Config) {
foreach $print_config (@Print_Config) {
if ($Config{$print_config}) {
print MAIL "$print_config: $Config{$print_config}\n\n";
}
}
}

# Sort alphabetically if specified: #
if ($Config{'sort'} eq 'alphabetic') {
foreach $field (sort keys %Form) {

# If the field has a value or the print blank fields option #
# is turned on, print out the form field and value. #
if ($Config{'print_blank_fields'} || $Form{$field} ||
$Form{$field} eq '0') {
print MAIL "$field: $Form{$field}\n\n";
}
}
}

# If a sort order is specified, sort the form fields based on that. #
elsif ($Config{'sort'} =~ /^order:.*,.*/) {

# Remove extraneous line breaks and spaces, remove the order: #
# directive and split the sort fields into an array. #
$Config{'sort'} =~ s/(\s+|\n)?,(\s+|\n)?/,/g;
$Config{'sort'} =~ s/(\s+)?\n+(\s+)?//g;
$Config{'sort'} =~ s/order://;
@sorted_fields = split(/,/, $Config{'sort'});

# For each sorted field, if it has a value or the print blank #
# fields option is turned on print the form field and value. #
foreach $sorted_field (@sorted_fields) {
if ($Config{'print_blank_fields'} || $Form{$sorted_field} ||
$Form{$sorted_field} eq '0') {
print MAIL "$sorted_field: $Form{$sorted_field}\n\n";
}
}
}

# Otherwise, default to the order in which the fields were sent. #
else {

# For each form field, if it has a value or the print blank #
# fields option is turned on print the form field and value. #
foreach $field (@Field_Order) {
if ($Config{'print_blank_fields'} || $Form{$field} ||
$Form{$field} eq '0') {
print MAIL "$field: $Form{$field}\n\n";
}
}
}

print MAIL "-" x 75 . "\n\n";

# Send any specified Environment Variables to recipient. #
foreach $env_report (@Env_Report) {
if ($ENV{$env_report}) {
print MAIL "$env_report: $ENV{$env_report}\n";
}
}

close (MAIL);
}
  #2 (permalink)  
Antiguo 26/11/2006, 07:07
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 524
Antigüedad: 18 años
Puntos: 11
Como el FormMail no envía nada que no sea texto, no hay un lugar donde se envía el Content-Type.

Lo que tienes que hacer es modificar todas las líneas 'print MAIL ...' para que en vez de texto saque el html.

De todas formas... ¿por qué es tan urgente enviarlo en formato html? El mensaje ocupará más que si es texto y además será más propenso a ser capturado por los filtros antispam.
  #3 (permalink)  
Antiguo 26/11/2006, 08:55
 
Fecha de Ingreso: noviembre-2006
Mensajes: 4
Antigüedad: 17 años, 6 meses
Puntos: 0
pero en lugar de print mail que pongo? no tengo ni idea por dfavor decime...
  #4 (permalink)  
Antiguo 26/11/2006, 13:54
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
en la función send_mail

sub send_mail {
...
}

Saludos
__________________
Esteban Quintana
  #5 (permalink)  
Antiguo 26/11/2006, 14:18
 
Fecha de Ingreso: noviembre-2006
Mensajes: 4
Antigüedad: 17 años, 6 meses
Puntos: 0
que es lo que tengo que poner en sub send_mail? osea reemplazo los print mail por ke funcion? no tiendo biewn, me podrian dar algun ejemplo? GRacias
  #6 (permalink)  
Antiguo 26/11/2006, 19:38
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Pues primero tienes que entender como es que funciona el HTML y la cabecera HTTP...Al mandar un mensaje en HTML debe tener una cabecera del tipo

Content-type: text/html

para que el navegador o el cliente de correo sepa que lo tiene que mostrar en formato HTML...

luego de eso imprimir cada línea en formato HTML...

no tienesque modificar nada, solo agregar ese detalle al principio de todo para que el mensaje viaje en formato HTML...

Saludos
PD: Siempre es bueno aprender antes de usar las cosas así estaremos seguros de que hicimos
__________________
Esteban Quintana
  #7 (permalink)  
Antiguo 26/11/2006, 19:54
 
Fecha de Ingreso: noviembre-2006
Mensajes: 4
Antigüedad: 17 años, 6 meses
Puntos: 0
ok eso ya lo se pero en donde coloco el Content-type: text/html
porkem me lo manda como texto osea, me escribe Content-type: text/html cmo si fuera parte del mensaje ahi arriba puse mi funcion send mail no me le podes agregar el content asi veo en donde va?
Muchas gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:07.