# Se dau:
# (o bere, in primul rand, pentru helpuiala :))
# - una bucata script cgi perl, care citeste dintr-un CSV cu trei coloane, x
# randuri, si trimite mailuri multiple catre userul "col1*row1", avand adresa
# "col2*row1" si ID-ul "col3*row1", apoi catre userul "col1*row2", avand
# adresa "col2*row2" si ID-ul "col3*row2", etc; mailuri avand subiect si
# text comun.
CSV ? Was ist das ? :)
# - una bucata individ vizionar, care vrea sa mareasca posibilitatile astui
# script, astfel incat sa poata alege diferiti useri (dupa ID), carora sa le
# trimita texte diferite, precum si sa aleaga in functie de mai multe
# variabile (CSV-ul extinzandu-se la 20-30 de coloane); nu in ultimul rand,
# sa aiba 25000-30000 de useri.
N-ar trebui sa fie foarte greu de extins scriptul.
# - un comp prost, si o legatura asijderea
#
# Se solicita:
# - ajutor in privinta executarii unui script care sa acceseze o baza de date
# adevarata, un fisier de text chior de 15 Mb depasind capacitatile de
# prelucrare rapida a hardware-lui...
# - sugestii in directia respectiva - baza de date, etc.
# - detalii practice in legatura cu constructia scriptului / comenzi folosite,
# etc - timpul fiind extrem de limitat.
Dac-ai avea, de exemplu, intr-o baza de date numita "test" o tabela MySQL:
create table blah (user text, email text, id text);
(cu modificarile de rigoare :), ai putea chiar face un scriptulet de genul:
#!/usr/bin/perl
use DBI;
use Net::Telnet;
my $user="<user>", $pass="<password>";
my $mail_from="Babau", $mail_data[0]="Yo, man !";
my $db=DBI->connect("DBI:mysql:test:localhost", $user, $pass);
my $c=new Net::Telnet(Host=>localhost; Port=>80);
sub db_query {
# Se putea si mai frumos, but oh well :)
my $db_query=$_[0]->prepare($_[1]), (@query_temp, @query_results)=();
if(!$db_query->execute) { die("Eroare SQL.") }
push(@query_temp, $_r) while(my $_r=$db_query->fetchrow_hashref);
$db_query->finish;
for(@query_temp) { if(!/^[\t\s]*$/) { push(@query_results, $_) } }
return(@query_results);
}
sub send_mail {
$c->print("HELO $ENV{HOSTNAME}"); # sau HTTP_HOST (daca e CGI)
$c->print("MAIL FROM: $mail_from");
$c->print("RCPT TO: $_[0]"); shift;
$c->print("DATA");
$c->print for(@_);
$c->print(".");
$c->print("QUIT");
}
for(db_query($db, "select * from blah")) {
send_mail("$_->{user} <$_->{email}>", @mail_data)
}
$db->disconnect;
# Ar trebui sa trimita un mail fiecarui "user <email>".
# Ce trebuie facut cu ID-ul ? More detail, please :)
#
# PS: Sper ca merge, ca nu l-am testat ;)
# Multumiri anticipate,
# Codrut
--
Radu <[EMAIL PROTECTED]> www.littledragon.f2s.com
It is the weak who are cruel, only the stong can be truly gentle.
---
Send e-mail to '[EMAIL PROTECTED]' with 'unsubscribe rlug' to
unsubscribe from this list.