Aller au contenu

Envoi d'emails en double ?


toma

Sujets conseillés

Bonjour,

Je travaille sur un script qui envoie en moyenne 2000 emails par jour. Le problème c'est que ce script envoie actuellement des emails en doublon, voire en "triplon", voire en plus !

Je ne trouve pas de solution pour qu'un seul email soit envoyé à chaque fois.

Le script suivant est appelé par un cron, chaque jour. Par exemple, pour un jour donné où l'on devrait avoir 2000 emails à envoyer, mon fichier de log liste 3500 lignes, dont 1500 doublons (ou plus). Pour information on utilise la fonction de mail de os_commerce (tep_mail).

Est-ce que quelqu'un pourrait m'aider là dessus parce-que là je ne vois pas du tout.

<?php
include("../../includes/application_top.php");

set_time_limit(0);
ignore_user_abort(true);

if ($_GET["test_date"]<>"") {
$auj=$_GET["test_date"];
} else {
$auj=date("Y-m-d");
}

$type = "gratuit";
$upause = 2000;

$where=" AND p.planning_date='".$auj."' ";

$prefixe_query=mysql_query("SELECT sites_id, sites_encodage FROM sites");
while ($prefixe_values=mysql_fetch_array($prefixe_query)) {

$prefixe=$prefixe_values["sites_encodage"].'_';

$nb_envoi_query=mysql_query("SELECT * FROM ".$prefixe."planning p, ".$prefixe."customers c, relances r WHERE p.relances_id=r.relances_id AND p.customers_id=c.customers_id AND p.planning_type='".$type."' ".$where." AND p.planning_status='1' AND planning_stop='0' ");
$nb_envoi=mysql_num_rows($nb_envoi_query);

$relances_query=mysql_query("SELECT * FROM ".$prefixe."planning p, ".$prefixe."customers c, relances r WHERE p.relances_id=r.relances_id AND p.customers_id=c.customers_id AND p.planning_type='".$type."' ".$where." AND p.planning_status='1' AND planning_stop='0'");

while ($relances=mysql_fetch_array($relances_query)) {

$sujet= "niania";
$content= "niania";

tep_mail($relances["customers_prenom"], $relances["customers_email"], $sujet, $content, 'xxx', 'xxx_AT_xxx.xxx');

// GENERATION DE maillog.new.txt
$log .= date('Y-m-d H:i:s') . "\t" . $relances["customers_prenom"] . "\t" . $relances["customers_email"] . "\r\n";

mysql_query("UPDATE ".$prefixe."planning SET planning_status='1|1' WHERE planning_id='".$relances["planning_id"]."' ");
usleep($upause);
}

// ECRITURE DU FICHIER
$fichier = fopen("maillog.new.txt","a+");
fputs($fichier, "$log");
fclose($fichier);

}

?>

Modifié par captain_torche
Lien vers le commentaire
Partager sur d’autres sites

Hello. Pour le type donné "gratuit" la relation est bien 1,1.

Quand je regardais les logs du serveur SMTP j'avais le même nombre de doublons que dans mon log généré par le script PHP.

Par contre, par une opération du saint-esprit, le problème a l'air de s'être réglé. J'ai appelé la page en spécifiant la date => envoi.php?test_date=2009-02-22 (plutôt que de ne pas spécifier de date) et là aucun doublon. Mon fichier de log contient exactement le nombre de lignes à envoyer.

Je considère donc ce problème comme réglé ?!@#$!

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...