PDA

Просмотр полной версии : Помогить разобраться...


Pann
21.01.2006, 09:04
Народ!Столкнулся с такой фичей...Мне надо было отправить письмо очень важное для меня.Написал,отправил после этого вываливается что-то как я понял из HTML,но мне надо точто знать получил ли человеку мое письмо.Это очень важно для меня.

Вот оно:
#!/usr/bin/perl

use CGI qw/:standard/;
$req = new CGI;

print "Content-type:text/html\n\n";

$from = $req->param('from');
$sendto = $req->param('to');
$subject = $req->param('subject');
$anum = $req->param('anum');
$referpage = $req->param('referpage');
if ($referpage eq "") {$referer = $ENV{'HTTP_REFERER'};} else {$referer="/".$referpage;}

my @a,@f,@c;
$a[ 1] = $req->param('a1');$f[1] = $req->param('f1');$c[1] = $req->param('c1');
$a[ 2] = $req->param('a2');$f[2] = $req->param('f2');$c[2] = $req->param('c2');
$a[ 3] = $req->param('a3');$f[3] = $req->param('f3');$c[3] = $req->param('c3');
$a[ 4] = $req->param('a4');$f[4] = $req->param('f4');$c[4] = $req->param('c4');
$a[ 5] = $req->param('a5');$f[5] = $req->param('f5');$c[5] = $req->param('c5');
$a[ 6] = $req->param('a6');$f[6] = $req->param('f6');$c[6] = $req->param('c6');
$a[ 7] = $req->param('a7');$f[7] = $req->param('f7');$c[7] = $req->param('c7');
$a[ 8] = $req->param('a8');$f[8] = $req->param('f8');$c[8] = $req->param('c8');
$a[ 9] = $req->param('a9');$f[9] = $req->param('f9');$c[9] = $req->param('c9');
$a[10] = $req->param('a10');$f[10] = $req->param('f10');$c[10] = $req->param('c10');
$a[11] = $req->param('a11');$f[11] = $req->param('f11');$c[11] = $req->param('c11');
$a[12] = $req->param('a12');$f[12] = $req->param('f12');$c[12] = $req->param('c12');
$a[13] = $req->param('a13');$f[13] = $req->param('f13');$c[13] = $req->param('c13');
$a[14] = $req->param('a14');$f[14] = $req->param('f14');$c[14] = $req->param('c14');
$a[15] = $req->param('a15');$f[15] = $req->param('f15');$c[15] = $req->param('c15');
$a[16] = $req->param('a16');$f[16] = $req->param('f16');$c[16] = $req->param('c16');
$a[17] = $req->param('a17');$f[17] = $req->param('f17');$c[17] = $req->param('c17');
$a[18] = $req->param('a18');$f[18] = $req->param('f18');$c[18] = $req->param('c18');
$a[19] = $req->param('a19');$f[19] = $req->param('f19');$c[19] = $req->param('c19');
$a[20] = $req->param('a20');$f[20] = $req->param('f20');$c[20] = $req->param('c20');

$mailp = "/usr/sbin/sendmail";

$chkfrom = $from;
$chkfrom =~ s/ |\n|\r//g;
$from =~ s/@/\@/g;
$sendto =~ s/@/\@/g;

$an=0;$an2=0;
for ($i=1;$i<=$anum;$i++) {
if (($a[$i] eq "")&&($c[$i]==1)) {$an++;$an2=$i;}
}

if (( $chkfrom eq "" )||( $an > 0)) {
print "<body bgcolor='#ffffff' background='../images/bg_html.gif'>";
print "<font face='verdana,MS Sans Serif' size='1'>Error please check your data $an , $an2</font>";
print "<br>";
print "<a href='http://www.star-fighter.com/html/contact.html'><font face='verdana,MS Sans Serif' size='1'>Back to edit</font></a>";
} else
{

$mytime = localtime();

open( M , "|$mailp -t") or die("Can't open $mailp");
print M "To: $sendto\n";
print M "From: $from\n";
print M "Subject: $subject\n";
print M "\n-------------------------------------------------------\n\n";
for ($i = 1; $i <= $anum; $i++ ) {
if ($f[$i] eq "e-mail") {print M "$f[$i] :: $from\n";
} else {print M "$f[$i] :: $a[$i]\n";}
}
print M "\n\n";
print M "\n$mytime";

close(M);
print "<br>";
print "<body bgcolor='#ffffff' background='../images/bg.gif'>";
print "<font face='verdana,MS Sans Serif' size='1'><b>&nbsp;&nbsp;&nbsp;Recording your data</b></font>";
print "<META HTTP-EQUIV='refresh' CONTENT='0;URL=http://www.star-fighter.com/html/sendok.html'>";
print "</body>";
}

ЗЫ.Модерам после ответа просьба прибить тему. :beer:

Al-x
21.01.2006, 10:00
Если на экране появилось именно это, то письмо скорее всего не отправилось (сервер не передад скрипт на обработку Perl'у и просто показал содержание скрипта). Скорее всего это из-за неправильной настройки сервера.
ЗЫ: Можешь просто написать письмо на адрес:

с темой Star Fighter Mail (это как раз то, что и должен делать скрипт)

rontommy
21.01.2006, 10:44
Pann:
Мне надо было отправить письмо очень важное для меня.Написал,отправил после этого вываливается что-то как я понял из HTML
Как я понял, вместо выполнения скрипта по отправке мейла, его текст выведен как обычная страничка. Обычно это бывает, когда неправильно прописан путь к cgi-bin. Судя по всему, мейл не отправился, т.к. скрипт не был запущен на сервере.