1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
| <?php
include ("../../Template/Connect/Connexionbd.php");
require_once '../lib/swift_required.php';
echo '<a href="../admin/admin_menu.php">retour Menu</a><br><br>';
/* EN DEBUT DE FICHIER */
function getmicrotime() // ca c'est du copier/coller pure - se n'est pas de moi
{
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
/* AVANT REQUETE */
$time_start = getmicrotime();
/*****************/
/*recup Variables*/
/*****************/
// Recup News ----------------------------------------------\\
$Res_New = mysql_query ("select * from NewsLetter");
$css = mysql_result($Res_New,0,"css");
$sujet = utf8_encode(mysql_result($Res_New,0,"Titre").mysql_result($Res_New,0,"Titre2"));
$infos1 = utf8_encode(mysql_result($Res_New,0,"Infos1"));
$infos2 = utf8_encode(mysql_result($Res_New,0,"Infos2"));
// Recup Nom & Mail expediteur ------------------------------\\
$Res_Exp = mysql_query ("select * from User_Exp");
$Nom_Exp = utf8_encode (mysql_result($Res_Exp,0,"Nom_Exp"));
$Mail_Exp = mysql_result($Res_Exp,0,"Mail_Exp");
// Recup Destinataire ----------------------------------------\\
$Res_Dest = mysql_query("SELECT * FROM User_Dest") or
die('Erreur SQL !<br/>'.$sql.'<br/>'.mysql_error());
/****************/
/* Creation MAIL*/
/****************/
// Mode d'envoi -----------------------------------------------\\
$transport = Swift_MailTransport::newInstance();
$mailer = Swift_Mailer::newInstance($transport);
$nb_mail=0; // init variable
/////////////////////
// recup destinataire
$Res_Dest_tot = mysql_query("SELECT * FROM User_Dest WHERE Envoi = '0'");
// divise le nombre de mail qui non pas encore reçu la news et arrondi sup
// ce qui me donne le nombre de paquet
$Nb_paquet=ceil(mysql_num_rows($Res_Dest_tot)/50);
for ($b=0;$b<$Nb_paquet;$b++) // 1er boucle sur le nombre de paquet
{
// selection et limite de 50 mails
$Res_Dest = mysql_query("SELECT * FROM User_Dest WHERE Envoi = '0' limit 0,50");
$Nb_Dest=mysql_num_rows($Res_Dest);
for ($a=0;$a<$Nb_Dest;$a++) // 2emme boucle sur le nombre de mails restant a traités
{
$Id = mysql_result($Res_Dest,$a,"Id");
$destinataire = mysql_result($Res_Dest,$a,"Mail_Dest");
// de qui/à qui
$message = Swift_Message::newInstance($sujet)
->setFrom(array($Mail_Exp => $Nom_Exp))
->setTo (array())
->setBcc (array($destinataire))
;
// var Image
$cid = $message->embed(Swift_Image::fromPath('aff1.jpg'));
//message
$message->setBody(
'<html>' .
' <head><style type="text/css" media="screen">'.$css.'</style></head>' .
' <body>' .
$infos1.
'<img src="' .$cid . '" alt="Image" /><br />' .
$infos2.
' </body>' .
'</html>',
'text/html'
);
//Envoi du message
if ($result = $mailer->send($message))
{
// mail envoyé : l'adresse passe à l'état 1 pour ne plus être compter
// dans la boucle 2
mysql_query("update User_Dest set Envoi='1' where Id='$Id'");
echo $Id.' - '.$destinataire." OK <br/>"; //test
$nb_mail++;
set_time_limit(180); /* la ca plante
je veux faire une tempo script pour que la page s'arrete un
de charger un moment pour ne pas avoir l'erreur 504 */
}
else
{
echo $destinataire." NG <br/>";
}
}//ok
//}
}
/* APRES REQUETE */
$time_end = getmicrotime();
$time = $time_end - $time_start;
echo '<br/><br/>'.$nb_mail.' mail envoyé en : ' .ceil($time). ' secondes'; |
Partager