Mail à plusieurs destinataires ne marche pas

IchabOd69 Messages postés 20 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 1 mars 2010 - 6 oct. 2009 à 22:33
IchabOd69 Messages postés 20 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 1 mars 2010 - 13 oct. 2009 à 21:14
Bonjour,

J'aurais besoin de votre aide, j'ai essayé de faire quelque chose mais je n'y arrive pas.
En cochant une case dans un formulaire, je souhaiterais que toutes les personnes renseignées dans une table et ayant une adresse email soit avertie par mail.

J'ai bidouillé ça :
dans la table, le champ s'appelle bien sûr "email"
dans le formulaire :
<td>Avertir ?</td><td></td>


dans le fichier php :
$envoi = $_POST["envoi"];

puis :
	if ($envoi = 'oui') {

$sql = "SELECT * FROM matable WHERE email <> null";
$requete = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());

while( $result = mysql_fetch_array( $requete ) )
{
$destinataire = "email";
$sujet = "mon sujet";
$message = "mon message";
mail($destinataire,$sujet,$message);
}
}
else header("location: ../formulaire.php");


Je précise que je suis chez free, alors je ne sais pas s'il y a des routines spéciales pour ce genre de fonctions (genre pour éviter le spam)

Auriez-vous une idée pour me dépanner ?


à votre bon coeur !

Cordialement,

16 réponses

tpoinsot Messages postés 345 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 17 octobre 2014 4
7 oct. 2009 à 08:27
Bonjour,
Commence par consulter la documentation qui te donnera aussi des conseils.
J'utilise toujours le 4ème paramètre avec au moins "From: ..." pour indiquer d'où vient le mail.
Là ça ne fonctionne pas car l'adresse du destinataire est mal formée.

thip
0
IchabOd69 Messages postés 20 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 1 mars 2010
7 oct. 2009 à 08:54
Bonjour,

Effecivement j'avais mis des guillemets au lieu de quotes.

J'ai corrigé et refait l'essai, je reviens plus tard pour dire si ça marche.

merci
0
IchabOd69 Messages postés 20 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 1 mars 2010
7 oct. 2009 à 09:12
Bon ça ne vient pas, j'ai mis deux adresses email dans la table, aucune ne l'a reçue; Revoilà mon bout de code corrigé :

	if ($envoi = 'oui') {

$sql = "SELECT * FROM matable WHERE email <> null";
$requete = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());

while( $result = mysql_fetch_array( $requete ) )
{
$destinataire = 'email';
$sujet = 'mon sujet';
$message = 'mon message';
$headers = 'From: monemail';
mail($destinataire, $sujet, $message, $headers);
}
}
else header("location: ../formulaire.php");


Est-ce que la syntaxe
$destinataire = 'email';
est corecte ou faut-il initialiser avant une variable $email ?

genre :

$email = $result['email'];


puis :

$destinataire = $email;
??
0
tpoinsot Messages postés 345 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 17 octobre 2014 4
7 oct. 2009 à 09:50
bien sûr : si ton destinataire est "email" , tu te fais jeter, et ta boucle de lecture de la requête ne sert à rien.
je vote pour
$email = $result['email'];

et idem pour les autres champs de la requête.
A nouveau la documentation sur http://www.php.net/manual/fr/function.mysql-fetch-array.php, exemples et conversations, c'est interessant.

thip
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
IchabOd69 Messages postés 20 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 1 mars 2010
7 oct. 2009 à 10:22
bon ben je l'ai fait et ça ne marche toujours pas.

Je ne sais plus quoi faire.

Je vais faire un test en mettant les adresses destinataires en dur le temps de voir si c'est un problème de code ou de free.
0
tpoinsot Messages postés 345 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 17 octobre 2014 4
7 oct. 2009 à 12:24
regarde ta table et évite de faire
	$sql = "select * from matable where email <> null";

mais plutôt
	$sql = "select email from matable where email <> null";


ensuite dans ta boucle

		$destinataire = $result['email'];
$sujet = 'mon sujet';
$message = 'mon message';
$headers = 'from: moi@xyz.com';
mail($destinataire, $sujet, $message, $headers);


S'il y a un problème avec free, c'est mail() qui va planter.

vérifie qu'il y a bien des valeurs dans ta table, que tu utilise bien les nom des champs de la table, et que ta requête est correcte en regardant les différentes valeurs de $result["email"]



thip
0
IchabOd69 Messages postés 20 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 1 mars 2010
7 oct. 2009 à 19:16
bon j'ai vu déjà une erreur, normalement j'aurais du mettre :
if ($envoi 'oui')
à la place de
if ($envoi 'oui')
.

Mais même avec cela, avec toutes les vérifications et tes propositions, cela ne fonctionne pas.
0
tpoinsot Messages postés 345 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 17 octobre 2014 4
7 oct. 2009 à 19:40
la requête SQL devrait être :

$sql = "select * from matable where email is not null";

quand tu dis que ton programme ne fonctionne pas, tu devrais joindre le message d'erreur (pas trop long).

thip
0
IchabOd69 Messages postés 20 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 1 mars 2010
7 oct. 2009 à 19:55
bon je viens d'arriver à envoyer un mail en mettant en dur
where email == 'monmail'

Donc je vais tester ce que tu viens de dire, si ça ne marche pas je pense que c'est un bridage de free de la fonction d'envoi multiples.

merci encore pour tes propositions.
0
IchabOd69 Messages postés 20 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 1 mars 2010
7 oct. 2009 à 19:55
edit : j'ai mis where email = 'monmail' et non pas ==
0
tpoinsot Messages postés 345 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 17 octobre 2014 4
7 oct. 2009 à 20:03
en sql il n'y a pas de '==' seulement '='


thip
0
IchabOd69 Messages postés 20 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 1 mars 2010
7 oct. 2009 à 20:14
oui c'est ce que j'ai corrigé justement

Sinon donc je viens de refaire le test :

'where email is not null' => ça plante erreur sql sur la ligne 97 qui est justement cette ligne là.
'where email 'monmail'> ça passe tranquille.

faut-il marquer 'where email is not 'null' '?
0
IchabOd69 Messages postés 20 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 1 mars 2010
7 oct. 2009 à 20:19
le message précis est :

Warning: mail() [function.mail]: Invalid mail. to = [] in /mnt/126/sdc/9/0/moncomptechezfree/dispo/include/envoi.php on line 97
0
IchabOd69 Messages postés 20 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 1 mars 2010
7 oct. 2009 à 20:27
OK c'est bon !

ça passe maintenant en essayant :
"where email != ''"
et bizarrement je reçois en même temps celui de 'where email is not null' alors que tout à l'heure je l'avais pas.

Bon au final ça a l'air de fonctionner, je te remercie grandement !!
0
IchabOd69 Messages postés 20 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 1 mars 2010
13 oct. 2009 à 20:12
Re-bonjour,

J'ai à nouveau un souci, qui n'est pas le même que précédemment :

Je permets de rentrer un code html dans un formulaire en affichant la valeur existante dans la base de données.
Le souci bien sûr c'est que le code html est interprété dans le champ, du coup je me retrouve avec un objet java au lieu du code lui-même.

J'ai cherché et essayé les balises xmp ou < et &glt;, et malheureusement ça ne fonctionne pas.

Avez-vous une solution ?

Voici mon code :




sachant que la valeur qui est retournée dans cet exemple est un objet flash de Meebo qui permet de chatter online :
<object width="190" height="275" ></object>


Merci de votre aide.

cordialement
0
IchabOd69 Messages postés 20 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 1 mars 2010
13 oct. 2009 à 21:14
OK j'ai trouvé, en utilisant une balise TEXTAREA ça fonctionne ça force en texte dur.

Désolé ;o)
0
Rejoignez-nous