Je n'y connais pas grand chose en Perl et j'ai =E9cris un petit script
qui doit selectionner des enregistrements dans une table suivant un
crit=E8re, envoyer le resultat dans un mail =E0 une ou plusieurs
personnes puis indiquer que les enregistrements ont =E9t=E9 trait=E9s.
Voici mon script :
#usr/bin/perl
use Mail::Sender;
use DBI;
$base =3D "ma base";
$login =3D "mon login";
$pass =3D "mon pot de passe";
# on se connecte a la base
$dbh =3D DBI->connect("DBI:mysql:$base",$login,$pass) || die "erreur
connection" ;
# on selectionne les nouvelles blagues
$req =3D "SELECT DATE_BLAGUE, NOTE_BLAGUE, TITRE_BLAGUE, FICHIER_BLAGUE
FROM BLAGUE WHERE MAIL LIKE 'N';";
$req =3D $dbh->prepare ("$req");
$req->execute || die "erreur execution requete";
# on constitue le mail
$message =3D new Mail::Sender { smtp =3D>'smtp.wanadoo.fr', from
=3D>'monadesse@wanadoo.fr'};
$message -> Open ({to =3D> 'autresadesses@wanadoo.fr' , subject =3D> 'Mail
automatique'});
while (@result=3D$req->fetchrow_array){
foreach(@result){
$message -> SendLine("$_ ");
}
}
$message -> Close;
$req->finish;
# on indique que les nouvelles blagues ont ete traitees
$req =3D "UPDATE BLAGUE SET MAIL =3D 'O' WHERE MAIL LIKE 'N';";
$req =3D $dbh->prepare ("$req");
$req->execute || die "erreur execution requete";
$req->finish;
# on se deconnecte a la base
$dbh->disconnect;
Il marche correctement et mon script envoie le mail suivant :
2006-05-05
1
Fermeture du bar
0605/fermeturebar.mpeg
2006-05-05
1
Trop de vent ?
0605/13.jpg
2006-05-05
1
Des chutes..
0605/chutes.wmv
J'aimerais obtenir dans un premier temps ceci :
2006-05-05 1 Fermeture du bar 0605/fermeturebar.mpeg
2006-05-05 1Trop de vent ? 0605/13.jpg
2006-05-05 1 Des chutes.. 0605/chutes.wmv
Puis j'aimerais ajouter une adresse web au dernier champ et un
commentaire au second , pour avoir :
2006-05-05 Note : 1 Fermeture du bar
http://monadresseweb/0605/fermeturebar.mpeg
2006-05-05 Note : 1Trop de vent ? http://monadresseweb/0605/13.jpg
2006-05-05 Note : 1 Des chutes.. http://monadresseweb/0605/chutes.wmv
Si en plus les champs pouvaient =EAtre align=E9s... ce serait le top :
2006-05-05 Note : 1 Fermeture du bar
http://monadresseweb/0605/fermeturebar.mpeg
2006-05-05 Note : 1 Trop de vent ?
http://monadresseweb/0605/13.jpg
2006-05-05 Note : 1 Des chutes..
http://monadresseweb/0605/chutes.wmv=20
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Sébastien Cottalorda
Bonjour tout le monde,
Salut,
Je n'y connais pas grand chose en Perl et j'ai écris un petit script qui doit selectionner des enregistrements dans une table suivant un critère, envoyer le resultat dans un mail à une ou plusieurs personnes puis indiquer que les enregistrements ont été traités.
Voici mon script : #usr/bin/perl use Mail::Sender; use DBI;
$base = "ma base"; $login = "mon login"; $pass = "mon pot de passe";
# on se connecte a la base $dbh = DBI->connect("DBI:mysql:$base",$login,$pass) || die "erreur connection" ;
# on selectionne les nouvelles blagues $req = "SELECT DATE_BLAGUE, NOTE_BLAGUE, TITRE_BLAGUE, FICHIER_BLAGUE FROM BLAGUE WHERE MAIL LIKE 'N';"; $req = $dbh->prepare ("$req"); $req->execute || die "erreur execution requete";
# on constitue le mail $message = new Mail::Sender { smtp =>'smtp.wanadoo.fr', from =>''}; $message -> Open ({to => '' , subject => 'Mail automatique'}); while (@result=$req->fetchrow_array){
Remplace ce bloc ==>
foreach(@result){ $message -> SendLine("$_ "); } par $message -> SendLine("@result");
} $message -> Close; $req->finish;
J'espère que cela t'aidera.
Sébastien
Bonjour tout le monde,
Salut,
Je n'y connais pas grand chose en Perl et j'ai écris un petit script
qui doit selectionner des enregistrements dans une table suivant un
critère, envoyer le resultat dans un mail à une ou plusieurs
personnes puis indiquer que les enregistrements ont été traités.
Voici mon script :
#usr/bin/perl
use Mail::Sender;
use DBI;
$base = "ma base";
$login = "mon login";
$pass = "mon pot de passe";
# on se connecte a la base
$dbh = DBI->connect("DBI:mysql:$base",$login,$pass) || die "erreur
connection" ;
# on selectionne les nouvelles blagues
$req = "SELECT DATE_BLAGUE, NOTE_BLAGUE, TITRE_BLAGUE, FICHIER_BLAGUE
FROM BLAGUE WHERE MAIL LIKE 'N';";
$req = $dbh->prepare ("$req");
$req->execute || die "erreur execution requete";
# on constitue le mail
$message = new Mail::Sender { smtp =>'smtp.wanadoo.fr', from
=>'monadesse@wanadoo.fr'};
$message -> Open ({to => 'autresadesses@wanadoo.fr' , subject => 'Mail
automatique'});
while (@result=$req->fetchrow_array){
Remplace ce bloc ==>
foreach(@result){
$message -> SendLine("$_ ");
}
par $message -> SendLine("@result");
Je n'y connais pas grand chose en Perl et j'ai écris un petit script qui doit selectionner des enregistrements dans une table suivant un critère, envoyer le resultat dans un mail à une ou plusieurs personnes puis indiquer que les enregistrements ont été traités.
Voici mon script : #usr/bin/perl use Mail::Sender; use DBI;
$base = "ma base"; $login = "mon login"; $pass = "mon pot de passe";
# on se connecte a la base $dbh = DBI->connect("DBI:mysql:$base",$login,$pass) || die "erreur connection" ;
# on selectionne les nouvelles blagues $req = "SELECT DATE_BLAGUE, NOTE_BLAGUE, TITRE_BLAGUE, FICHIER_BLAGUE FROM BLAGUE WHERE MAIL LIKE 'N';"; $req = $dbh->prepare ("$req"); $req->execute || die "erreur execution requete";
# on constitue le mail $message = new Mail::Sender { smtp =>'smtp.wanadoo.fr', from =>''}; $message -> Open ({to => '' , subject => 'Mail automatique'}); while (@result=$req->fetchrow_array){
Remplace ce bloc ==>
foreach(@result){ $message -> SendLine("$_ "); } par $message -> SendLine("@result");
} $message -> Close; $req->finish;
J'espère que cela t'aidera.
Sébastien
Sébastien
Bonjour,
Merci pour ton aide. J'ai déjà tenté cette modification hier au soir. Cela m'a permis d'obtenir quelque chose comme :
2006-05-05 1 Fermeture du bar 0605/fermeturebar.mpeg 2006-05-05 1Trop de vent ? 0605/13.jpg 2006-05-05 1 Des chutes.. 0605/chutes.wmv
Ce qui répond à ma première modification. Toutefois, j'aimerais aussi ajouter du "texte" sur ma réponse pour obtenir :
2006-05-05 Note : 1 Fermeture du bar http://monadresseweb/0605/fermeturebar.mpeg 2006-05-05 Note : 1 Trop de vent ? http://monadresseweb/0605/13.jpg 2006-05-05 Note : 1 Des chutes.. http://monadresseweb/0605/chutes.wmv
(ajout de "Note :" et de "http://monadresseweb/" ). Comment dois je faire ?
Par avance merci.
Sébastien
Bonjour,
Merci pour ton aide.
J'ai déjà tenté cette modification hier au soir.
Cela m'a permis d'obtenir quelque chose comme :
2006-05-05 1 Fermeture du bar 0605/fermeturebar.mpeg
2006-05-05 1Trop de vent ? 0605/13.jpg
2006-05-05 1 Des chutes.. 0605/chutes.wmv
Ce qui répond à ma première modification.
Toutefois, j'aimerais aussi ajouter du "texte" sur ma réponse pour
obtenir :
2006-05-05 Note : 1 Fermeture du bar
http://monadresseweb/0605/fermeturebar.mpeg
2006-05-05 Note : 1 Trop de vent ?
http://monadresseweb/0605/13.jpg
2006-05-05 Note : 1 Des chutes..
http://monadresseweb/0605/chutes.wmv
(ajout de "Note :" et de "http://monadresseweb/" ).
Comment dois je faire ?
Merci pour ton aide. J'ai déjà tenté cette modification hier au soir. Cela m'a permis d'obtenir quelque chose comme :
2006-05-05 1 Fermeture du bar 0605/fermeturebar.mpeg 2006-05-05 1Trop de vent ? 0605/13.jpg 2006-05-05 1 Des chutes.. 0605/chutes.wmv
Ce qui répond à ma première modification. Toutefois, j'aimerais aussi ajouter du "texte" sur ma réponse pour obtenir :
2006-05-05 Note : 1 Fermeture du bar http://monadresseweb/0605/fermeturebar.mpeg 2006-05-05 Note : 1 Trop de vent ? http://monadresseweb/0605/13.jpg 2006-05-05 Note : 1 Des chutes.. http://monadresseweb/0605/chutes.wmv
(ajout de "Note :" et de "http://monadresseweb/" ). Comment dois je faire ?
Par avance merci.
Sébastien
Sébastien Cottalorda
Bonjour,
Merci pour ton aide. J'ai déjà tenté cette modification hier au soir. Cela m'a permis d'obtenir quelque chose comme :
2006-05-05 1 Fermeture du bar 0605/fermeturebar.mpeg 2006-05-05 1Trop de vent ? 0605/13.jpg 2006-05-05 1 Des chutes.. 0605/chutes.wmv
Ce qui répond à ma première modification. Toutefois, j'aimerais aussi ajouter du "texte" sur ma réponse pour obtenir :
2006-05-05 Note : 1 Fermeture du bar http://monadresseweb/0605/fermeturebar.mpeg 2006-05-05 Note : 1 Trop de vent ? http://monadresseweb/0605/13.jpg 2006-05-05 Note : 1 Des chutes.. http://monadresseweb/0605/chutes.wmv
Salut,
tu peux faire comme ceci: ATTENTION, cela suppose que le fichier est toujours à la position n°3 dans la requête SQL
#usr/bin/perl use Mail::Sender; use DBI;
$base = "ma base"; $login = "mon login"; $pass = "mon pot de passe";
# on se connecte a la base $dbh = DBI->connect("DBI:mysql:$base",$login,$pass) || die "erreur connection" ;
# on selectionne les nouvelles blagues $req = "SELECT DATE_BLAGUE, NOTE_BLAGUE, TITRE_BLAGUE, FICHIER_BLAGUE FROM BLAGUE WHERE MAIL LIKE 'N';"; $req = $dbh->prepare ("$req"); $req->execute || die "erreur execution requete";
# on constitue le mail $message = new Mail::Sender { smtp =>'smtp.wanadoo.fr', from =>''}; $message -> Open ({to => '' , subject => 'Mail automatique'}); while (@result=$req->fetchrow_array){ ######################################################### # Ajou de http://monadresseweb/ devant le nom du fichier ######################################################### $result[3] = 'http://monadresseweb/'.$result[3]; $message -> SendLine("@result"); } $message -> Close; $req->finish;
# on indique que les nouvelles blagues ont ete traitees $req = "UPDATE BLAGUE SET MAIL = 'O' WHERE MAIL LIKE 'N';"; $req = $dbh->prepare ("$req"); $req->execute || die "erreur execution requete"; $req->finish;
# on se deconnecte a la base $dbh->disconnect;
REMARQUE: A ta place, je n'utiliserai pas LIKE dans la requête SQL, mais plutôt "=", en effet, il me semble que LIKE est plus gourmand en ressources
Sébastien
Bonjour,
Merci pour ton aide.
J'ai déjà tenté cette modification hier au soir.
Cela m'a permis d'obtenir quelque chose comme :
2006-05-05 1 Fermeture du bar 0605/fermeturebar.mpeg
2006-05-05 1Trop de vent ? 0605/13.jpg
2006-05-05 1 Des chutes.. 0605/chutes.wmv
Ce qui répond à ma première modification.
Toutefois, j'aimerais aussi ajouter du "texte" sur ma réponse pour
obtenir :
2006-05-05 Note : 1 Fermeture du bar
http://monadresseweb/0605/fermeturebar.mpeg
2006-05-05 Note : 1 Trop de vent ?
http://monadresseweb/0605/13.jpg
2006-05-05 Note : 1 Des chutes..
http://monadresseweb/0605/chutes.wmv
Salut,
tu peux faire comme ceci:
ATTENTION, cela suppose que le fichier est toujours à la position n°3
dans la requête SQL
#usr/bin/perl
use Mail::Sender;
use DBI;
$base = "ma base";
$login = "mon login";
$pass = "mon pot de passe";
# on se connecte a la base
$dbh = DBI->connect("DBI:mysql:$base",$login,$pass) || die "erreur
connection" ;
# on selectionne les nouvelles blagues
$req = "SELECT DATE_BLAGUE, NOTE_BLAGUE, TITRE_BLAGUE, FICHIER_BLAGUE
FROM BLAGUE WHERE MAIL LIKE 'N';";
$req = $dbh->prepare ("$req");
$req->execute || die "erreur execution requete";
# on constitue le mail
$message = new Mail::Sender { smtp =>'smtp.wanadoo.fr', from
=>'monadesse@wanadoo.fr'};
$message -> Open ({to => 'autresadesses@wanadoo.fr' , subject => 'Mail
automatique'});
while (@result=$req->fetchrow_array){
#########################################################
# Ajou de http://monadresseweb/ devant le nom du fichier
#########################################################
$result[3] = 'http://monadresseweb/'.$result[3];
$message -> SendLine("@result");
}
$message -> Close;
$req->finish;
# on indique que les nouvelles blagues ont ete traitees
$req = "UPDATE BLAGUE SET MAIL = 'O' WHERE MAIL LIKE 'N';";
$req = $dbh->prepare ("$req");
$req->execute || die "erreur execution requete";
$req->finish;
# on se deconnecte a la base
$dbh->disconnect;
REMARQUE: A ta place, je n'utiliserai pas LIKE dans la requête SQL, mais
plutôt "=", en effet, il me semble que LIKE est plus gourmand en ressources
Merci pour ton aide. J'ai déjà tenté cette modification hier au soir. Cela m'a permis d'obtenir quelque chose comme :
2006-05-05 1 Fermeture du bar 0605/fermeturebar.mpeg 2006-05-05 1Trop de vent ? 0605/13.jpg 2006-05-05 1 Des chutes.. 0605/chutes.wmv
Ce qui répond à ma première modification. Toutefois, j'aimerais aussi ajouter du "texte" sur ma réponse pour obtenir :
2006-05-05 Note : 1 Fermeture du bar http://monadresseweb/0605/fermeturebar.mpeg 2006-05-05 Note : 1 Trop de vent ? http://monadresseweb/0605/13.jpg 2006-05-05 Note : 1 Des chutes.. http://monadresseweb/0605/chutes.wmv
Salut,
tu peux faire comme ceci: ATTENTION, cela suppose que le fichier est toujours à la position n°3 dans la requête SQL
#usr/bin/perl use Mail::Sender; use DBI;
$base = "ma base"; $login = "mon login"; $pass = "mon pot de passe";
# on se connecte a la base $dbh = DBI->connect("DBI:mysql:$base",$login,$pass) || die "erreur connection" ;
# on selectionne les nouvelles blagues $req = "SELECT DATE_BLAGUE, NOTE_BLAGUE, TITRE_BLAGUE, FICHIER_BLAGUE FROM BLAGUE WHERE MAIL LIKE 'N';"; $req = $dbh->prepare ("$req"); $req->execute || die "erreur execution requete";
# on constitue le mail $message = new Mail::Sender { smtp =>'smtp.wanadoo.fr', from =>''}; $message -> Open ({to => '' , subject => 'Mail automatique'}); while (@result=$req->fetchrow_array){ ######################################################### # Ajou de http://monadresseweb/ devant le nom du fichier ######################################################### $result[3] = 'http://monadresseweb/'.$result[3]; $message -> SendLine("@result"); } $message -> Close; $req->finish;
# on indique que les nouvelles blagues ont ete traitees $req = "UPDATE BLAGUE SET MAIL = 'O' WHERE MAIL LIKE 'N';"; $req = $dbh->prepare ("$req"); $req->execute || die "erreur execution requete"; $req->finish;
# on se deconnecte a la base $dbh->disconnect;
REMARQUE: A ta place, je n'utiliserai pas LIKE dans la requête SQL, mais plutôt "=", en effet, il me semble que LIKE est plus gourmand en ressources