Evialroot
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Здравствуйте. В Perl и программировании я вообще полный ноль, поэтому очень нужна помощь. Проблема в том, что сообщения приходят на почтовый ящик в нечитаемом виде (а точнее в koi-8). Если кто знает как решить эту проблему, напишите пожалуйста исправленный код скрипта полностью. Заранее спасибо #Программа SENDMAIL $mailprog = '/usr/sbin/sendmail'; ############################################### use CGI::Carp qw (fatalsToBrowser); read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $name =~ tr/+/ /; $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $name =~ s/<!--(.|\n)*-->//g; $name =~ s/<([^>]|\n)*>//g; $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s/<!--(.|\n)*-->//g; $value =~ s/<([^>]|\n)*>//g; $FORM{$name} = $value; } $subject = $FORM{subject}; $to = $FORM{to}; $from = $FORM{from}; $followupurl = $FORM{followupurl}; # Open the mail program open(MAIL,"|$mailprog -t"); print MAIL "To: $to\n"; print MAIL "From: $from\n"; print MAIL "Subject: $subject\n"; print MAIL "\n"; print MAIL "---------------------------------------------------------------------\n"; foreach $key (keys(%FORM)) { if ($key ne "subject" && $key ne "to" && $key ne "from" && $key ne "followupurl") { print MAIL "$key: $FORM{$key}\n"; } } print MAIL "---------------------------------------------------------------------\n"; close(MAIL); print "Location: $followupurl\n\n"; Добавлено: Проблема решена. Добрые люди помогли Код был исправлен на такой вид: se CGI::Carp qw (fatalsToBrowser); read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $name =~ tr/+/ /; $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $name =~ s/<!--(.|\n)*-->//g; $name =~ s/<([^>]|\n)*>//g; $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s/<!--(.|\n)*-->//g; $value =~ s/<([^>]|\n)*>//g; $FORM{$name} = $value; } $subject = $FORM{subject}; $to = $FORM{to}; $from = $FORM{from}; $followupurl = $FORM{followupurl}; # Open the mail program open(MAIL,"|$mailprog -t"); print MAIL "To: $to\n"; print MAIL "From: $from\n"; print MAIL "Subject: $subject\n"; print MAIL "Content-Type: text/plain; charset=\"windows-1251\"\n"; print MAIL "Content-Transfer-Encoding: 8bit\n"; print MAIL "\n"; print MAIL "---------------------------------------------------------------------\n"; foreach $key (keys(%FORM)) { if ($key ne "subject" && $key ne "to" && $key ne "from" && $key ne "followupurl") { print MAIL "$key: $FORM{$key}\n"; } } print MAIL "---------------------------------------------------------------------\n"; close(MAIL); print "Location: $followupurl\n\n"; |