>Если доступа к крону нет - то тогда можешь попытаться изменить скрипт,
>это в принципе не сложно, поставь в самом начале запись в
>файл времени старта скрипта - и при каждой процедуре отправки письма
>следующему адресату - проверяй этот файл и сравнивай с текущем временем.
>Но если у тебя программерских знаний нет - то тут будет
>сложно.
Хмм... Оных знаний у меня и правда нет... Но надо же когда-то учиться! )) Если бы кто подсказал, какие именно команды задают запись времени...
А вот может получится как-то использовать вот такой отрывок из другого скрипта на том же перле?
---------------------------------
# Does your host require a sleep between blocks of e-mails sent?
$usesleep = 'yes';
# How many e-mails are sent in one block?
$blocksize = '100';
# How long to sleep between blocks (in seconds)?
$sleeptime = '70';
....
----------------------------------
.....
print MAIL "All Rights Reserved.\n"; close (MAIL);
if ($usesleep !~ 'n' && $sendcnt eq $blocksize) {
sleep $sleeptime;
$sendcnt = 0;
}
}
}
}
if (!$FORM{'sendmessage'}) {....
------------------------------------------
Это было в другом скрипте, который как-раз работает с отсылкой писем с определенным интервалом времени, но он, к сожалению, не работает на моем хосте по невыясненным причинам, и вообще не имеет нужных функций.
Вот только незнаю, как именно это применить и какой именно кусок от вышеизложенного и после чего нужно поставить в моем скрипте.
А это (по-моему дилетанскому мнению) кусок из моего скрипта, выполняющий ту же функцию:
------------------------------------------------
#Собственно рассылка
my $sentok=0; my $senterr=0;
my $boundary="--Boundary_$$.pvdlab.net";
open (LOG,">logsent.txt");
print LOG "-----------Начало отправки ----------\n";
while (<ABOOK>) {
chomp; s/\r+$//;
next if !$_;
($email, $charset, $mode)=split(/\x01/, $_, 3);
$charset=$defcharset if (!$charset);
$mode=$defmode if (!$mode);
$flg=0;
open (MZ,$MAIL_PROGRAM) or $flg=1;
if ($flg==0)
{ print MZ "To: $email\n";
print MZ "From: $from{$charset}\n";
print MZ "Subject: $subj{$charset}\n";
print MZ "MIME-Version: 1.0\n";
if ($attflg==1) {
print MZ "Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
print MZ "\n";
print MZ "This is a multi-part message in MIME format.\n";
print MZ "\n";
#текст письма
print MZ "--$boundary\n";
print MZ "Content-Type: $chset{$mode}\; charset=\"$chset{$charset}\"\n";
print MZ "Content-Transfer-Encoding: 8bit\n\n";
print MZ $msg{"$charset\_$mode"};
print MZ "\n\n";
my $i=1; my $maxfiles=10;
while ($i<$maxfiles+1) {
if ($in{"srcfile$i"}) {
#Аттачмент
print MZ "--$boundary\n";
print MZ "Content-Type: ", $in{"ctfile$i"}, "; name=\"", $in{"file$i"}, "\"\n";
print MZ "Content-Transfer-Encoding: Base64\n";
print MZ "Content-Disposition: attachment; filename=\"", $in{"file$i"}, "\"\n";
print MZ "\n";
print MZ $in{"srcfile$i"};
print MZ "\n\n";
}
$i++;
}
#конец письма
print MZ "--$boundary--\n";
}
else {
print MZ "Content-Type: $chset{$mode}\; charset=\"$chset{$charset}\"\n";
print MZ "Content-Transfer-Encoding: 8bit\n\n";
print MZ $msg{"$charset\_$mode"};
print MZ "\n\n";
}
close (MZ); $sentok++;
print LOG "$email - Ok\n";
} else {$senterr++; print LOG "---- Ошибка отправки $email \n";}
}
close(ABOOK);
print LOG "-----------Конец отправки ----------\n";
#Собственно рассылка
my $sentok=0; my $senterr=0;
my $boundary="--Boundary_$$.pvdlab.net";
open (LOG,">logsent.txt");
print LOG "-----------Начало отправки ----------\n";
while (<ABOOK>) {
chomp; s/\r+$//;
next if !$_;
($email, $charset, $mode)=split(/\x01/, $_, 3);
$charset=$defcharset if (!$charset);
$mode=$defmode if (!$mode);
$flg=0;
open (MZ,$MAIL_PROGRAM) or $flg=1;
if ($flg==0)
{ print MZ "To: $email\n";
print MZ "From: $from{$charset}\n";
print MZ "Subject: $subj{$charset}\n";
print MZ "MIME-Version: 1.0\n";
if ($attflg==1) {
print MZ "Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
print MZ "\n";
print MZ "This is a multi-part message in MIME format.\n";
print MZ "\n";
#текст письма
print MZ "--$boundary\n";
print MZ "Content-Type: $chset{$mode}\; charset=\"$chset{$charset}\"\n";
print MZ "Content-Transfer-Encoding: 8bit\n\n";
print MZ $msg{"$charset\_$mode"};
print MZ "\n\n";
my $i=1; my $maxfiles=10;
while ($i<$maxfiles+1) {
if ($in{"srcfile$i"}) {
#Аттачмент
print MZ "--$boundary\n";
print MZ "Content-Type: ", $in{"ctfile$i"}, "; name=\"", $in{"file$i"}, "\"\n";
print MZ "Content-Transfer-Encoding: Base64\n";
print MZ "Content-Disposition: attachment; filename=\"", $in{"file$i"}, "\"\n";
print MZ "\n";
print MZ $in{"srcfile$i"};
print MZ "\n\n";
}
$i++;
}
#конец письма
print MZ "--$boundary--\n";
}
else {
print MZ "Content-Type: $chset{$mode}\; charset=\"$chset{$charset}\"\n";
print MZ "Content-Transfer-Encoding: 8bit\n\n";
print MZ $msg{"$charset\_$mode"};
print MZ "\n\n";
}
close (MZ); $sentok++;
print LOG "$email - Ok\n";
} else {$senterr++; print LOG "---- Ошибка отправки $email \n";}
}
close(ABOOK);
print LOG "-----------Конец отправки ----------\n";
-----------------------------------------------------------
Вот я думаю, как бы пристроить тот верхний кусок в нижний скрипт отправки... (мена постоянно путают эти скобки "{}" - не врубаюсь, что и где они ограничивают, и где конец, а где начало... *_*) При попытке сделать это методом "пальцем в небо" выдавались ошибки...
ЗЫ: Извиняюсь за выкладывание сюда таких огромных кусков скрипта, но самостоятельно мне с этим не разобраться... *_*