8791 sujets

Développement web côté serveur, CMS

Bonjour à tous Smiley cligne

Je vous expose un problème que je n'arrive pas à comprendre (pourquoi du comment cela ne fonctionne pas).

J'ai un mailer (fait par mes petite patouches, c'est surement pour cela que ça coince Smiley lol ) qui envoie des mail html/txt à merveille.

Par contre, il n'y a que le destinataire principal (Sender) qui le recois, les personne qui devrais être en copie, sont bien en copie dans le mail, mais ne recoivent jamais le mail. Je ne comprends vraiment pas.

Pour que vous puissiez m'aidez (si vous en avez envie bien entendu Smiley lol ) voici le code de mail (type) que je recois (uniquement les headers, car le contenu fonctionne très bien):

To: webmaster@grid-france.fr
Subject: Soumission d'une actualité
From: "Super_baloo8" <s***@***.com>
Cc: s***@***.com, j***@***.net, 9***@***.org, r***@***.com, s***@***.fr, j***@***.net, v***@***.fr, 
X-Priority: 3


Et voilà une partie du mailer (je ne vous monter que les partie utile car le reste c'est des broutilles) :

Formation des mail en copie (viens d'une BDD) :

while($mail_ins = mysql_fetch_row($mail_ins_res))
	{
	[b]$email_cc[/b] .= $mail_ins[0].', ';
	}


Voici une partie les headers :

$frontiere = md5(uniqid(mt_rand()));
	
	$headers_admin = 'From: "'.$from_mail.'" <'.$email_expediteur.'>'."\n";
	$headers_admin .= 'Return-Path: <'.$email_reply.'>'."\n";
	$headers_admin .= 'Cc: '.[b]$email_cc[/b].''."\n";
	$headers_admin .= 'X-Priority: 3'."\n";
	$headers_admin .= 'MIME-Version: 1.0'."\n";
	$headers_admin .= 'Content-Type: multipart/alternative; boundary="'.$frontiere.'"';
	
	$message_admin = 'This is a multi-part message in MIME format.'."\n\n"; 
	
	$message_admin .= '--'.$frontiere.''."\n";
	$message_admin .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n";
	$message_admin .= 'Content-Transfer-Encoding: 8bit'."\n\n";
	$message_admin .= $message_texte_admin."\n\n";
	
	$message_admin .= '--'.$frontiere.''."\n";
	$message_admin .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";
	$message_admin .= 'Content-Transfer-Encoding: 8bit'."\n\n";
	$message_admin .= $message_html_admin."\n\n";
	$message_admin .= '--'.$frontiere.'--'."\n";	


Puis la fonction mail habituel :

mail($destinataire_admin,$sujet,$message_admin,$headers_admin);


Et pour infos, voici comment je recois le mail :

upload/3270-problemeccm.gif

Si je fais répondre à tous, j'ai bien toutes les adresses bien marqué, et tout fonctionne à merveille lors de la réponse à tous.

C'est désespérant.

Le rapport avec l'accessibilité ? (Pour ne pas faire que du Php Smiley lol ), c'est que les mails sont inacessible à ceux qui sont en copie Smiley lol

Non sans rire, c'est juste que j'ai l'habitude d'avoir des réponses très pertinentes ici plutôt que sur un forum spécialisé dont je tairais le nom.

Merci d'avance Smiley cligne
Modifié par Super_baloo8 (19 Dec 2007 - 00:13)
Salut Super_baloo8 Smiley smile ,

je ne vois rien qui cloche excepté peut-être que $email_cc se termine par une virgule sans rien derrière Smiley rolleyes ... Tu pourrais essayer de l'enlever histoire d'être sûr que le problème ne vienne pas de ça...

A+
Salut Heyoan, tu vas bien ? Smiley cligne

Rholala, le naze, ça viens surement de là, par contre, comment arrêter la boule à N-1 pour ne pas avoir la virgule à la fin ?
Super_baloo8 a écrit :
Salut Heyoan, tu vas bien ? Smiley cligne
Ça boume !

Super_baloo8 a écrit :
par contre, comment arrêter la boule à N-1 pour ne pas avoir la virgule à la fin ?
En fait je n'ai jamais trouvé de manière "élégante" de faire ça Smiley fut ...

Quitte à faire "vilain" je me serais contenté d'un substr après la boucle :
$email_cc = substr($email_cc, 0, strlen($email_cc)-2);
Smiley langue

Sinon il reste le mysql_num_rows et tant que ce n'est pas le dernier résultat on rajoute .=', ';
Modifié par Heyoan (19 Dec 2007 - 00:06)
Merci Heyoan Smiley cligne

Finalement j'ai repris entre temps une des méthode pour les requêtes sql dynamique :

	$mail_cc_form = array();
	
while($mail_ins = mysql_fetch_row($mail_ins_res))
	{
	$mail_cc_form[] = $mail_ins[0];
	}
	if(count($mail_cc_form) > 0)
	{	
    $email_cc .= implode (", ", $mail_cc_form);
	}


C'est vrai que c'est beaucoup plus clair ta formule Smiley sweatdrop

Encore merci Smiley cligne J'espère que le problème est résolu, je verrais ça demain avec les "Tu nous as encore spammé" Smiley lol
Re à tous, donc le problème est bien résolu, c'était cette virgule de trop à la fin qui me posait tant de soucis.

Mille merci Heyoan Smiley cligne