Albat... j'ai testé dans mon script et je reçois les 2 messages, comme si $envoi valait TRUE et FALSE en même temps.
J'ai quelques if imbriqués dans mon script... je crois que le mieux est que je le colle au complet ici.
$envoyer = $_POST['envoyer'];
$liste = '../result.lst';
$inscrits = file_get_contents($liste);
$tableau = explode('|',$inscrits);
$fichier_texte = 'newsletter/malettre.txt';
$sujet = 'Des nouvelles de mon client';
$entete = 'From: Le client <[email protected]>' . "\r\n";
$nombre = (count($tableau)-1);
if (($envoyer =='non') || ($envoyer==''))
{
echo 'vous avez choisi de ne pas envoyer la lettre tout de suite';
}
if (($envoyer=='oui') && (strlen($fichier_texte)>=1))
{ $ouvrir = fopen ($fichier_texte, "rb"); // ouverture du fichier
$contenu = fread ($ouvrir, filesize ($fichier_texte)); // lecture fichier stockage dans la variable contenu
fclose ($ouvrir); // fermeture du fichier
$contenu .="\r\n";
$contenu .= "Pour vous désinscrire de la lettre d'info allez à cette page : http://www.client.com/desabonner.php";
$message = $contenu; // ici je change de nom de variable parce que j'avais un autre traitement que j'ai enlevé par la suite.
for ($i=0;$i<count($tableau);$i++)
{
$envoi = mail($tableau[$i], $sujet, $message, $entete);
if ($envoi==true)
{ echo "<h3 align='center'>vous avez envoyé ce message à $nombre inscrits.</h3>";
echo "<table width=\"60%\" border=\"0\" align=\"center\" cellpadding=\"5\"
cellspacing=\"0\" bgcolor=\"#E2E1D9\"><tr><td>$message</td></tr></table>";
}
else { echo "<h3>L'envoi de la newsletter a échoué.</h3> "; }
}
Pour commencer, je vois que le script affiche Vous avez envoyé.... autant de fois que j'ai d'adresses dans mon fichier texte.
Il affiche aussi: L'envoi de la newsletter a échoué.
Si je change le dernier } de place et que je le mets où il devrait être (il me semble) avant le dernier if, là le script se comporte comme si la fonction mail() avait échouée. Pourtant, je reçois bien le mail.
Alors j'ai décidé de tester ton bout de script sans tous les autres tests que je fais ici.
$envoi = mail($destinataire, $sujet, $message);
if ($envoi==true)
{ echo "<h4>Envoi effectué</h4> <b>$sujet</b> <br><br> $message";
}
else
{ echo "Envoi échoué";
}
Comme ça ça marche... mais pas dans mon script.
Ouskecé que j'me suis trompée ? (en jargon québécois, ouskecé signifie simplement où)
Merci encore pour ta précieuse aide Albat...