Forum Webscript.Ru
Программирование => Perl => Тема начата: Yaroslav от 05 Июня 2005, 19:33:15
-
вот дождался количество мыл растет (уже 250) и браузер пока всем отправит сообщения загибается :( подскажите чаво нибудь плс.
отправка происходит:
open(AL,"$allmails");
foreach () { chomp;
open (MAIL, "|/usr/sbin/sendmail -t");
print MAIL "To: $_\\n";
print MAIL "From: $mymail\\n";
print MAIL "Content-Type: text/html; charset=windows-1251\\n";
print MAIL "Subject: $url\\n\\n";
print MAIL "$text\\n";
}
close (AL);
&view;
даже если сначала поставить &view; ,результат не меняется...
-
ну а ты раздели на блоки по 100 мыл
-
это как?
и что изменится?
-
нашел тут что то о прогресивном человечестве и о том что оно уже давно использует Net::SMTP и MIME::Entity.
пошлите куда нибудь почитать об этом побольше.
-
http://search.cpan.org/~gbarr/libnet-1.19/Net/SMTP.pm
http://search.cpan.org/search?query=Mime&mode=all
-
подумавши и посоветовавшись с (ondr, спасибо!), сделал так:
создаются списки по 50 мыл и через крон запускаются черз определенное время. также к каждому списку создается и текст нужного сообщения. запускаемый скрипт ищет файлы с разширением "*.txt" берет по его номеру сообщение и разссылает. после чего соответственно оба файла удаляются.
вопрос в следующем. как проверить на наличие файлов "*.txt".
я тут набросал, но что то не получается...
#!/usr/bin/perl -w
##################################
$mailprog="/usr/sbin/sendmail -t";
##################################
@filename = glob("*.txt");
if ($filename ne "") {
($num,undef)=split(/\\./,$filename[0]);
open (MSG, "$num.msg");
@msg=;
close (MSG);
$one=shift(@msg);
open(AL, "$filename[0]");
foreach () {
open (MAIL, "|$mailprog");
print MAIL "To: $_";
print MAIL "From: my\\@mail\\n";
print MAIL "Content-Type: text/html; charset=windows-1251\\n";
print MAIL "Subject: $one\\n";
print MAIL @msg;
}
close (AL);
unlink <$num.txt>;
unlink <$num.msg>;
}
else { print "no file"; }
-
вот хотя бы так:
opendir (S,$dir) or die "Cannot read this directory $dir: $!";
@files = grep (/\\.txt/i,readdir S); closedir(S);
foreach (@files){
if (-s $_) {
..........
} else { print \'no files\' }
}
-
извиняюсь, получилось так. если есть замечания, буду благодарен :)
#!/usr/bin/perl -w
##################################
$mailprog="/usr/sbin/sendmail -t";
##################################
if (@filename = glob("*.txt")) {
($num,undef)=split(/\\./,$filename[0]);
open (MSG, "$num.msg");
@msg=;
close (MSG);
$one=shift(@msg);
open(AL, "$filename[0]");
foreach () {
open (MAIL, "|$mailprog");
print MAIL "To: $_";
print MAIL "From: my\\@mail\\n";
print MAIL "Content-Type: text/html; charset=windows-1251\\n";
print MAIL "Subject: $one\\n";
print MAIL @msg;
}
close (AL);
unlink <$num.txt>;
unlink <$num.msg>;
}
else { print "no file"; }
-
Yaroslav
если есть замечания, буду благодарен
use strict;