Rechercher : dans
Par :

Mails envoyés en double avec liste distrib

Dernière réponse le 26 mar 2008 à 15:30:13 Cryborg, le 26 mar 2008 à 11:38:03 
 Signaler ce message aux modérateurs

Bien le bonjour !

Je rencontre un souci lors de l'envoi de mail via mon intranet vers des listes de diffusion.
Nous avons un serveur Exchange, et utilisons Outlook. Lorsque l'on envoie un mail à plusieurs listes de distribution, les personnes appartenant à plusieurs groupes ne reçoivent qu'une seule fois le message, ce qui est très bien, et très logique.

Mais lorsque j'envoie le même message, aux mêmes listes de diffusion, mais via la fonction mail() de PHP, ce tri n'est pas fait. Et une personne recevra plusieurs fois le mail, suivant le nombre de fois qu'elle est répertoriée dans les listes de diffusion.

Je pensais que c'était Exchange qui faisait le tri lors de la réception, mais il semblerait que ce ne soit pas le cas...

La seule différence que je puisse voir est la suivante : lors de l'envoi par Outlook, j'indique le nom de la liste de diffusion, sans avoir besoin d'indiquer le nom de domaine. En revanche, je suis obligé avec PHP d'indiquer @domaine.fr.
Pourtant, lors de l'envoi sous Outlook, même en indiquant le domaine, le tri est fait....

Je n'ai rien trouvé sur le net qui puisse me guider, si quelqu'un a déjà rencontré ce souci et à réussi à le solutionner, ce serait génial :)

Merci !

Meilleures réponses pour « Mails envoyés en double avec liste distrib » dans :
Impossible d'envoyer des mails par smtp.mail.yahoo.fr VoirSymptômes Si vous ne parvenez plus à envoyer du courrier avec le serveur SMTP de Yahoo et que Outlook vous renvoie le message suivant : Échec de la connexion au serveur. Compte : 'pop.mail.yahoo.fr' Serveur : 'smtp.mail.yahoo.fr', Protocole :...
Télécharger Scan To Email VoirScan To Email est un logiciel permettant de scanner votre document et l’envoyer par e-mail. Vous n’avez pas toujours besoin d’utiliser un fax pour envoyer vos documents. Avec ce logiciel il suffit que vous placiez votre document...
Listes de diffusion (mailing lists) VoirNotion de liste de diffusion Une liste de diffusion (en anglais mailing-list) est un des services les plus couramment utilisés sur internet, permettant à un expéditeur d'envoyer un message à un ou plusieurs destinataires. Le courrier électronique a...

1

croy, le 26 mar 2008 à 14:22:32
  • +1

Comment sont codés ton appel de la fonction mail PHP ainsi que l'élaboration du premier paramètre de cette fonction ($to) ?

Répondre à croy

2

Cryborg, le 26 mar 2008 à 14:28:13
  • +1

Voici la fonction qui me sert à envoyer les mails :

function envoieMail($destinataires, $destinataires_cc, $sujet, $message)
{
	// Ajout des en-têtes
	$headers  = "MIME-Version: 1.0\r\n";
	$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
	if ($destinataires_cc != '') $headers .= 'Cc: ' . $destinataires_cc . "\r\n";
	
	// Nom du serveur Exchange
	ini_set('SMTP', 'xxxxxxx');
	ini_set('sendmail_from', 'Intranet_Architecture@domaine.fr');
	
	// Envoi du mail
	return mail($destinataires, $sujet, MAIL_HTML_HEADER . $message . MAIL_HTML_FOOTER, $headers);
}


J'avais moi aussi pensé à un éventuel doublon $to / premier paramètre mail(), mais ce n'est pas le cas, seules les personnes présentes dans plusieurs listes de diffusion sont concernées...

Je testerai avec PHPMailer, afin de voir si le souci est également présent

Répondre à Cryborg

3

croy, le 26 mar 2008 à 14:38:04
  • +1

Ajoute la ligne suivante juste avant la ligne appelant la fonction mail :

echo '<br>...' . $destinataires . '...';


Qu'est-ce qui s'affiche à l'exécution

Répondre à croy

4

Cryborg, le 26 mar 2008 à 15:06:45
  • +1

Et bien il m'affiche la liste des listes de diffusion que je lui ai passé en paramètre de ma fonction envoieMail(). Il n'y a pas de doublons dans les listes de diffusion elles-mêmes.

...ETUDES_ARCHITECTURE@domaine.fr, EXPLOIT_BUREAUTECH@domaine.fr...

Répondre à Cryborg

5

croy, le 26 mar 2008 à 15:25:51
  • +1

OK, je comprends le pb.

Je vois deux possibilités :

1. intervenir au niveau du serveur EXCHANGE si cela est possible et, de toutes manières je ne saurais pas te conseiller sur ce sujet

2. programmer toi-même le dédoublonage en suivant les étapes suivantes :
- placer dans un tableau toutes les adresses "de base" correspondant à chacune de ces listes de diffusion
- élminer les doublons de ce tableau (voir la fonction array_unique)
- reconstruire le string des destinataires à partir du tableau dédoublonné
- appeler mail

L'inconvénient de cette méthode est au niveau de la première étape : si tu ne peux pas extraire du serveur Exchange le détail des listes de diffusion tu sera obligé de les gérer en double.

Répondre à croy

6

 Cryborg, le 26 mar 2008 à 15:30:13
  • +1

C'est bien ce dont j'avais peur effectivement... Je ne voyais pas comment faire sans toucher au serveur Exchange... Quant à gérer nominativement les mails, cela règlera le problème, mais ce n'est pas top niveau évolutivité :)

Merci beaucoup pour ton aide, je te tiendrais au courant sur ce que cela a donné avec PHPMailer... même si je ne vois pas comment je pourrais avoir un autre résultat :)

Répondre à Cryborg