Forum Webscript.Ru

Программирование => Perl => Тема начата: Татьяна от 07 Ноября 2002, 16:39:27

Название: послать форму как интернет сообщение
Отправлено: Татьяна от 07 Ноября 2002, 16:39:27
Привет!
У меня возникла следующая проблема: мне нужно отослать содержание формы на любой адрес, для этого я использовала CGI-Script, пример которого находится на странице: http://selfaktuell.teamone.de/artikel/cgiperl/form-mail/index.htm:

#!С:/Perl/bin/perl

# -------> SMTP-Programm zum Versenden der Mail:
$Sendmail_Prog = "С:/Perl/lib/sendmail";
use CGI;
$query = new CGI;
@names = $query->param;

# -------> считать текст с hidden-полей:
$delimiter = $query->param(\'delimiter\');  
$mailto = $query->param(\'mailto\');        # ---> Получатель
$returnhtml = $query->param(\'return\');    # ---> URL für Dankeseite
$subject = $query->param(\'subject\');      # ---> E-Mail-Subject


# -------> Считать текст из формы:
$mailtext = "";
foreach(@names) {
  $name = $_;
  @values = "";
  @values = $query->param($name);
  if($name ne "mailto" && $name ne "return" && $name ne "subject" && $name ne "delimiter") {
    foreach $value (@values) {
      $mailtext = $mailtext.$name;
      $mailtext = $mailtext.$delimiter;
      $mailtext = $mailtext.$value."\\n";
    }
  }
}

# -------> E-Mail послать:
open(MAIL,"|$Sendmail_Prog -t") || print STDERR "Ошибка в sendmail\\n";
print MAIL "To: $mailto\\n";
print MAIL "Subject: $subject\\n\\n";
print MAIL "$mailtext\\n";
close(MAIL);
print "Location: $returnhtml\\n\\n";

Программа обрабатывает мою форму и потом открывает RETURN-страничку с сообщением, что сообщение успешно отправлено, но я ничего потом не получаю.
У меня Windows 98 и я ввожу вместо $Sendmail_Prog = "/usr/lib/sendmail"; полный путь "С:/Perl/lib/sendmail"
Может в этом моя ошибка?
Название: послать форму как интернет сообщение
Отправлено: NeoNox от 07 Ноября 2002, 16:43:21
А sendmail то есть? На сервере.
Название: послать форму как интернет сообщение
Отправлено: Татьяна от 07 Ноября 2002, 16:56:02
У меня инсталирован сервер на моем компьютере, чтобы можно бало локально проверять CGI-Script.
В папке cgi-bin находится только maillog, a sendmail лежит в папке Perl/lib
Название: послать форму как интернет сообщение
Отправлено: NeoNox от 07 Ноября 2002, 17:01:37
sendmail это сервер для работы с почтой. Устанавливается отдельно от Perl и Apache. Но его нужно установить. Это не библиотека Perl-a. Если у тебя sendmail под вин., то какой именно (их штуки 3 есть).
Название: послать форму как интернет сообщение
Отправлено: Татьяна от 07 Ноября 2002, 17:12:46
sendmail server у меня не установлен, не подскажешь, где его можно скачать?
Название: послать форму как интернет сообщение
Отправлено: NeoNox от 07 Ноября 2002, 17:14:44
Читать тут: http://www.webz.ru/www/4/
Качать тут: http://www.indigostar.com/sendmail.htm
Удачи.
Название: послать форму как интернет сообщение
Отправлено: Татьяна от 07 Ноября 2002, 17:19:02
Спасибо за помощь!