#!/usr/bin/perl -w
 # charger le module DBI
use DBI;
 # fixer la source de données $dns (=database name source) et le compte utilisateur
 # (l'utilisateur doit bien sûr avoir les droits d'accès à cette base)
$database= "lettre_info";
$hostname= "localhost";
$porto= "3306";
$dsn   = "DBI:mysql:database=$database;host=$hostname;port=$porto";
$login = "dev";
$mdp   = "dev";

 ########################################################################################################
 # Se connecter à la source de données (avec ce compte valide sur la base) revient à créer un objet     #
 # La méthode connect de la classe DBI renvoie une référence vers cet objet, qui est un                #
 # identifiant de connexion, noté usuellement $dbh (=DataBase Handle).                              #
 # Les méthodes sont appelées suivant la syntaxe usuelle orientée-objet $dbh -> methode          #
 ########################################################################################################

$dbh = DBI->connect($dsn, $login, $mdp) or die "Echec de la connexion\n";
$requete = "SELECT max(Numero) FROM ae_lettre_dinfo ";
@enr = $dbh -> selectrow_array($requete);
print "@enr\n";

$requete1 = "SELECT * FROM Abonnes WHERE envoyer = 0";
$sth = $dbh->prepare($requete1);

$sth -> execute();
while (@liste = $sth -> fetchrow_array)
        {
 	$requete2 = "SELECT ID FROM ae_sections WHERE section = ?";
        $sth2 = $dbh->prepare($requete2);
        $sth2->bind_param(1,$liste[1]);
        $sth2 -> execute();
 	while (@liste2 = $sth2 -> fetchrow_array)
 		{
         	#printf "@liste2\n";
        	$requete3 = "SELECT * FROM ae_lettre_dinfo WHERE Espaces= ? and Numur= ? and Numero= ?";
          	$sth3 = $dbh->prepare($requete3);
          	$sth3->bind_param(1,$liste[7]);
          	$sth3->bind_param(2,$liste2[0]);
          	$sth3->bind_param(3,$enr[0]);
          	$sth3 -> execute();
  	  	while (@liste3 = $sth3 -> fetchrow_array) 
  	      		{
  			$message .= $liste3[9];	
                	#printf "@liste3\n";
	        	}
		$server = 'localhost';
		use Mail::Sendmail;

		#$loaded = 1;
		print "ok 1\n";
		if ($server) 
			{
   	 		$mail{Smtp} = $server;
    			print "Server set to: $server\n";
	        	} #
		%mail = ('To' =>$liste[0] ,'From' => 'lettreinfo@urssaf.fr','content-type' => 'text/html; charset="iso-8859-1"','Subject' => 'La Lettre dinfo des Urssaf','Message' => $message);
		print "Sending...\n";

		if (sendmail %mail) 
			{
    			print "content of \$Mail::Sendmail::log:\n$Mail::Sendmail::log\n";
    			if ($Mail::Sendmail::error) 
    				{
        		print "content of \$Mail::Sendmail::error:\n$Mail::Sendmail::error\n";
    				}
	    		print "ok 2\n";
    			#requete update
    			$requete4 = "UPDATE Abonnes SET envoyer=1 WHERE email='".$liste[0]."'";
    			$sth4 = $dbh->prepare($requete4);
    			$sth4 -> execute();
			}
		else 	{
    			print "\n!Error sending mail:\n$Mail::Sendmail::error\n";
    			print "not ok 2\n";
			}
	}
}

$dbh -> disconnect;