Page 1 sur 1
Module de Mailing Newletter
Posté : 23 juin 2011, 00:13
par Alex2
Bonjour,
J'ai ce code en PHP de Mailing qui se connecte sur la base de données pour obtenir des mails et envoyer les messages à chaque adresse email une par une, mais cela ne fonctionne pas. Ca s'arrête au premier mail, on dirait que le while ne fonctionne pas.
Voici mon code :
<?php
$link = mysql_connect('localhost', "user", "mdp");
if (!$link) {
die('Impossible de se connecter : ' . mysql_error());
}
$db_selected = mysql_select_db('email', $link);
if (!$db_selected) {
die ('Impossible de sélectionner la base de données : ' . mysql_error());
}
$req = mysql_query("select email from membres");
while($array = mysql_fetch_array($req))
{
$em = $array["email"];
@mail("$em","sujet","messsage","From:
[email protected]");
}
?>
Avez-vous une idée du problème ?
Merci
Cordialement
Alex
Re: Module de Mailing Newletter
Posté : 23 juin 2011, 08:33
par Mazarini
Bonjour,
Enlève le @ devant mail car ca empêche les messages d'erreur. Tu peux aussi ajouter quelques "echo" pour suivre le traitement.
Ma première impression est un arrêt du script sur le premier mail.
Re: Module de Mailing Newletter
Posté : 23 juin 2011, 09:21
par Alex2
Bonjour,
Merci pour votre réponse.
J'ai bien retiré le @ mais cela n'affiche aucune erreur.
L'erreur est un arrêt du script sur le premier mail. Pourquoi ?
Merci
Cordialement
Alex
Re: Module de Mailing Newletter
Posté : 23 juin 2011, 09:24
par xTG
Si pas d'erreur mais arrêt du script c'est que les erreurs PHP ne sont pas activées.
Rajoutes ce code en début de script :
error_reporting(E_STRICT & E_ALL);
Re: Module de Mailing Newletter
Posté : 23 juin 2011, 09:28
par Alex2
Bonjour,
Merci de votre réponse.
J'ai mis le code mais toujours rien.
Merci
Cordialement
Alex
Re: Module de Mailing Newletter
Posté : 23 juin 2011, 10:18
par Mazarini
Bonjour,
Ajoute un echo mysql_num_rows($req); avant le while pour voir combien de lignes retourne ta requête.
Ajoute un echo avant et un autre après le mail.
Re: Module de Mailing Newletter
Posté : 23 juin 2011, 10:28
par Alex2
Bonjour,
Merci de votre réponse.
Dans ma base de données j'ai 2 adresses mail et après avoir mis "mysql_num_rows($req);" il affiche "2". Ce qui est bizarre puisqu'il n'envoie qu'un mail.
Merci
Cordialement
Alex
Re: Module de Mailing Newletter
Posté : 23 juin 2011, 10:53
par Mazarini
while($array = mysql_fetch_array($req))
{
$em = $array["email"];
echo 'avant mail ',$em,'<br>';
if (mail("$em","sujet","messsage","From: [email protected]"))
{
echo 'envoi OK<br>';
}
else
{
echo 'envoi en erreur<br>';
}
echo 'après mail ',$em,'<br>';
}
Sinon, je ne vois pas ce qui permet de dire que l'on ne passe qu'une fois dans la boucle sans echo.
Qu'est ce qui te fais dire qu'il n'y a qu'un mail d'envoyer ?
As tu vérifié la validité de la seconde adresse ?
As tu vérifié les spam de la seconde adresse ?
Re: Module de Mailing Newletter
Posté : 23 juin 2011, 11:13
par Alex2
Bonjour,
Merci de votre réponse.
J'ai plusieurs emails de test et on dirait que cela ne fonctionne pas avec les mails "hotmail" il n'y a rien dans les spams et dans le courrier entrant. C'est vraiment bizarre.
J'ai essayé avec mon email professionnel et ça fonctionne mais pas avec les hotmail.
Quelqu'un a une explication ?
Merci
Cordialement
Alex
Re: Module de Mailing Newletter
Posté : 23 juin 2011, 11:19
par Mazarini
Il y a souvent des problèmes lors des envois de mail vers des services comme hotmail, gmail...
Ces services ont des procédures complexes de filtrage des mails et sont souvent très sélective. Il y a d'autres post dans le forum qui font état de problèmes semblable.