Вот эти 2 скрипта. Скрипты, наверное, рабочие, просто я не знаю как их правильно применить. Буду благодарен за помощь
1-й скрипт (предпочтительный)
#!/usr/bin/perl
#------------------------------------------
# Copyright =baxter= 2000
# Все права защищены.
# e-mail:
baxter@tut.by# url:
http://baxter.virtualave.net#------------------------------------------
# bmail v1.0
#------------------------------------------
$mail_prog = \'/usr/sbin/sendmail\' ; # указать правильно!
$recip = \'baxter@tut.by\'; # твой почтовый ящик
#------------------------------------------
use CGI ;
$query = new CGI;
$name = $query->param(\'name\'); #
$email = $query->param(\'email\'); #
$url = $query->param(\'url\');if ($url eq \'http://\'){$url=\'\'} #
$coment = $query->param(\'coment\'); #
#-------------------------------------------
if ($ENV{CONTENT_LENGTH}) {&send_mail}
else {&form}
#-------------------------------------------
sub send_mail{
$message = "
The ERROR!<\\/h1>" ;
$found_err = "" ;
$errmsg = "
Поле \'Сообщение\' должно быть заполнено.
\\n" ;
if ($coment eq "") {
$message = $message.$errmsg ;
$found_err = 1 ; }$errmsg = "
Поле \'Имя\' должно быть заполнено.
\\n" ;
if ($name eq "") {
$message = $message.$errmsg ;
$found_err = 1 ; }
$errmsg = "
Не верный формат поля E-mail
\\n" ;
if (length($email) && ($email !~ /.+\\@.+\\..+/)) {
$message = $message.$errmsg ;
$found_err = 1 ; }
if ($found_err) {&PrintError }
#goto M777;
open (MAIL, "|$mail_prog -t");
print MAIL "To: $recip\\n";
print MAIL "Reply-to: $email\\n";
print MAIL "From: $email\\n";
print MAIL "Subject: feedback\\n";
print MAIL "Content-Type: text/plain;charset=\\"windows-1251\\"\\n\\n";
print MAIL "".$name."\\n" ;
print MAIL "".$email."\\n" ;
print MAIL "".$url."\\n" ;
print MAIL "==============================================\\n" ;
print MAIL "".$coment."\\n" ;
print MAIL "\\n\\n";
close (MAIL);
#M777:;
#print "Location: /index.html\\nURI: /index.html\\n\\n" ;
print $query->header(-type => \'text/html; charset=windows-1251\');
print $query->start_html(-title =>\'Message sent!\', -BGCOLOR=>\'#FFFFFF\',-LINK=>\'red\');
#print \'\';
print \'
Сообщение передано!
\' ;
print "".$name."\\n
" ;
print "".$email."\\n
" ;
print "".$url."\\n
" ;
print "==============================================\\n
" ;
print "".$coment."\\n
" ;
print \'
<<back
\'."\\n";
print $query->end_html;
sub PrintError {
print $query->header(-type => \'text/html; charset=windows-1251\');
print $query->start_html(-title =>\'The ERROR!\', -BGCOLOR=>\'#FFFFFF\',-LINK=>\'red\');
print $message ;
print \'\'."\\n";
print \'
<<back
\';
print $query->end_html;
exit 0 ;
return 1 ;
}
}
#--------------------------------------
#html код можно изменять по своему усмотрению
# кроме тегов name="-----"
# action="/cgi-bin/bmail/bmail.cgi" - правильно записать путь к скрипту
sub form{
print q~
~;
}
2-й скрипт:
#!/usr/local/bin/perl
#--------------------------------------=========================================
# ==== ICQ:5915230
# Denis Poznyakov ====
# ====
# (Feed Back) ====
# ====
pvdenis@usa.net#--------------------------------------=========================================
# $referers - пропишите в этой переменной ваш урл и название файла в
# котором будет форма , для предотвращения посылки сообщения
# вам с локальной машины
$referers="http://ваш урл/feedback.html";
$mailprog = \'/bin/sendmail\';
$snmail="ваш e-mail";
#----------------------------------------------------------------------------
# Заголовок
read(STDIN, $buffer, $ENV{\'CONTENT_LENGTH\'});
if (!$buffer) {
$buffer=$ENV{\'QUERY_STRING\'};
}
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$in{$name} = $value;
}
print "Content-type: text/html\\n\\n";
if (!$buffer) {&formfeed;exit;}
if ($buffer) {
if ($ENV{\'HTTP_REFERER\'} ne $referers) {exit;}
&no_name unless $in{\'name\'}; # нет имени
&no_email unless $in{\'e_mail\'}; # нет ящика
if ($in{\'e_mail\'}=~ tr/\\/\\\\\\+=~;<>*|`&$!#()[]{}:\'" //) {
print "В Вашем адресе (e-mail) содержатся
стоп-символы!
назад";
exit;
}
&no_comment unless $in{\'comment\'}; # нет ника
&sndmail;
exit;
}
sub sndmail {
print "Ваше сообщение отправлено!
назад";
open (MAIL, "|$mailprog -t") || die "Can\'t open $mailprog!
\\n";
print MAIL "To: $snmail\\n";
print MAIL "From: $snmail\\n";
print MAIL "Subject: Feedback\\n\\n";
print MAIL <
От: $in{\'name\'} ($in{\'e_mail\'})
$in{\'comment\'}
to_the_end
close(MAIL);
}
sub no_name {
print "Не внесено имя!
назад";
exit;
}
sub no_email {
print "Не внесен Ваш адрес (e-mail)!
назад";
exit;
}
sub no_comment {
print "Не внесен комментарий!
назад";
exit;
}
sub formfeed {
print "
";
}