Page 1 sur 1

fonction mail plusieurs destinataires

Posté : 02 nov. 2009, 09:18
par davidou
Bonjour,

Avec 1 destinataire, la fonction mail fonctionne, mais dans le cas suivant, elle ne fonctionne plus (aucun message d'erreur) :

<?php

$mailto = '[email protected], [email protected], [email protected]';
$mailfrom = '[email protected]';
$prenom = 'prénom';
$Nom = 'nom';

$ligneobjet = 'Objet';
$lignemessage = 'Message';

/* Message2 */
$message2 = '<html><head><title>Message</title></head><body>'.$lignemessage.'</body></html>';

// Préparation des données à envoyer aux destinataires finaux
// Envoyer un mail HTML, type de contenu d'en-tête.
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

// additional headers
$headers .= "To: ".$mailto." \r\n";
$headers .= "From: ".$prenom." ".$Nom." <".$mailfrom."> \r\n";

// Envoi du courrier
mail($mailto, $ligneobjet, $message2, $headers);

?>

Si vous voyez pourquoi... merci de m'en faire part !

Re: fonction mail plusieurs destinataires

Posté : 02 nov. 2009, 10:42
par stopher
Salut ,

que te retourne la fonction mail ?

TRUE ou FALSE ?

Sinon, pour les mails , je te conseille fortement , si tu ne veux pas galérer avec les normes ect ... d'utiliser de bibliothèques dédiées à cette effet .

Mon préféré : http://www.phpguru.org/static/mime.mail.html

ou http://pear.php.net/package/Mail

Mais il y en a d'autres ...

Good luck ,
Ch.

Re: fonction mail plusieurs destinataires

Posté : 02 nov. 2009, 11:44
par davidou
Merci Christopher de t'être penché sur mon cas...

J'ai modifié la fonction comme suit :

// Envoi du courrier
if(mail($mailto, $ligneobjet, $message2, $headers)){echo 'TRUE';}
else{echo 'FALSE';}

Elle me retourne false !

Je ne connaissais pas cette histoire de norme... Je vais regarder ça de plus près.
Intuitivement, je comprends que tu es en train de me dire que la fonction mail() ne conviendrait peut être pas et qu'il vaudrait peut être mieux employer à la place la fonction mail_queue() (ou une autre) ?

Merci encore...

Re: fonction mail plusieurs destinataires

Posté : 02 nov. 2009, 12:00
par stopher
Utiliser une librairie , qui te simplifie énormément les choses ...

Pour Rmail , voici un exemple son utilisation ....
http://www.developer.com/lang/php/artic ... ations.htm

Tu n'as plus à te soucier des entêtes à insérer ect ...

Il te suffit juste de renseigner certains points .

Pour revenir à ton problème , si mail() renvoie FALSE , celà veut dire qu'il n'a pas était accepté pour livraison .. reste à savoir pourquoi ..

Pour tes adresses , essayes cette syntaxe :

"Toto <[email protected]>, Titi <[email protected]> \r\n"

Re: fonction mail plusieurs destinataires

Posté : 02 nov. 2009, 12:55
par davidou
Là, je suis au taf, et donc je ne peux plus rien essayer !

Pour commencer, j'essaierai ta proposition de syntaxe (Toto <[email protected]>, Titi <[email protected]>)... Je la sens bien... Normalement, il ne devrait pas y avoir de raison pour que la fonction mail() classique ne fonctionne pas...

Si ta proposition de syntaxe n'y fait rien plutôt que de m'entêter et d'y laisser des heures... j'essaierai ta première proposition (chargement d'une librairie)...

Merci, à ce soir !

Re: fonction mail plusieurs destinataires

Posté : 09 nov. 2009, 10:59
par david77
Voilà, mon pb est résolu... J'écris donc pour remercier Christopher et puis aussi pour vous communiquer la soluce dès fois que ça puisse servir à d'autres...!!! D'autre part, j'ai pu vérifier que la fonction mail() n'est pas optimisée pour un envoi de mail à des destinataires multiples... D'autres fonctions comme celles conseillées par Christopher sont mieux adaptées... mais là c'est un autre débat !

Pour mon pb, je l'ai résolu de la manière suivante (voir la ligne en gras dans le programme) :

<?php

$mailto = '[email protected], [email protected], [email protected]';
$mailfrom = '[email protected]';
$prenom = 'prénom';
$Nom = 'nom';

$ligneobjet = 'Objet';
$lignemessage = 'Message';

/* Message2 */
$message2 = '<html><head><title>Message</title></head><body>'.$lignemessage.'</body></html>';

// Préparation des données à envoyer aux destinataires finaux
// Envoyer un mail HTML, type de contenu d'en-tête.
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

// additional headers
// $headers .= "To: ".$mailto." \r\n";
$headers .= "From: ".$prenom." ".$Nom." <".$mailfrom."> \r\n";

// Envoi du courrier
mail($mailto, $ligneobjet, $message2, $headers);

?>

Re: fonction mail plusieurs destinataires

Posté : 09 nov. 2009, 11:17
par stopher
Merci du retour :wink:

Sauf que , ce n'est pas "christopher" mais juste "stopher" :D

Pointilleux moi ? :-p