Задача в следующем: Необходимо запрашивать страничку в интернете с курсом поставщика, затем сравниваем с курсом, сохраненным в файле, если курс изменился более чем на 1% отправляем письмо c bpvtytybtv на info@myserver.ruкак работать с файлами знаю, не знаю как запросить страничку с интернета и отправить потом письмо.
Зарание спасибо
>Задача в следующем: Необходимо запрашивать страничку в интернете с курсом поставщика, затем
>сравниваем с курсом, сохраненным в файле, если курс изменился более чем
>на 1% отправляем письмо c bpvtytybtv на info@myserver.ru
>
>как работать с файлами знаю, не знаю как запросить страничку с интернета
> и отправить потом письмо.
>
>Зарание спасибо
С отправкой разобрался
#!/usr/bin/perl
open(MAIL, '| /usr/libexec/sendmail/sendmail sss@myserver.ru</usr/home/sss/111');
>Задача в следующем: Необходимо запрашивать страничку в интернете с курсом поставщика,perldoc LWP, если нет скачай с http://cpan.org
http://www.perl.com/pub/a/2003/01/22/mechanize.html
Может кому пригодится вот такой скрипт:#!/usr/bin/perl
use Socket;
# подготавливаем строчку с параметрами формы
$forminfo = 'param1=val1¶m2=val2';# подготавливаем и осуществляем соединение:
# выбираем работу через TCP
$proto = getprotobyname('tcp');# открываем потоковый сокет
socket(Socket_Handle, PF_INET, SOCK_STREAM, $proto);# подготавливаем информацию о сервере
$port = 80;
$host = "www.autopiter.ru";
$sin = sockaddr_in($port,inet_aton($host));# соединяемся с сервером
connect(Socket_Handle,$sin) || die ("Cannot connect");# передаем серверу команды, используя дескриптор сокета
# собственно команда GET
send Socket_Handle,"GET /about.asp HTTP/1.0\n",0;# HTTP-заголовки
send Socket_Handle,"User-Agent: my agent\n",0;
send Socket_Handle,"SomeHeader: my header\n",0;
send Socket_Handle,"\n",0;# начинаем чтение из дескриптора сокета аналогично
# тому, как читали из файла.@mass=(<Socket_Handle>);
close (Socket_Handle);
$n=$#mass;
$s=0;
while ($s != $n) {
if ($mass[$s]=~ m/EUR/) {
$mass[$s]=~ s%<[^>]+>%%g;
$mass[$s]=~ s%\s+% %g;
@mmm=split / /, $mass[$s];
}
$s=$s+1;
}$n=$#mmm;
$s=0;
while ($s != $n) {
if ($mmm[$s]=~ m/EUR/) {
$euro=$mmm[$s+1];
$euro=~ s%\,%.%;
}
if ($mmm[$s]=~ m/USD/) {
$usd=$mmm[$s+1];
$usd=~ s%\,%.%;
}
if ($mmm[$s]=~ m/РУБ/) {
$rub=$mmm[$s+1];
$rub=~ s%\,%.%;
}
$s=$s+1;
}open(K,"kurs.piter");
@kp=<K>;
close(K);
$oldeuro=$kp[1];
$oldusd=$kp[2];
$oldrub=$kp[3];if (($rub/$euro)/($oldrub/$oldeuro)>1.01) {
open(Z,">kurs.piter");
print Z "Внимание компания ПИТЕР+ изменила курс. Замените курс в программе прайсы, (формат EURO, USD, РУБ)\n";
print Z "$euro\n";
print Z "$usd\n";
print Z "$rub\n";
close(Z);
open (SENDMAIL, "|/usr/sbin/sendmail -t") || die "ERROR: Can not run sendmail";
print SENDMAIL "MIME-Version: 1.0\n";
print SENDMAIL "To: info,webmin,director\n";
print SENDMAIL "Subject: PITER+, Izmenenie kursa\n\n";
print SENDMAIL "Внимание компания ПИТЕР+ изменила курс. Замените курс в программе прайсы\n",
"Евро стал $euro\n",
"Бакс стал $usd\n",
"Рубль стал $rub\n";
close (SENDMAIL);
}