IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

Découper en paquet de 10 un envoi de mail


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Informatique
    Inscrit en
    Mai 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2011
    Messages : 133
    Par défaut Découper en paquet de 10 un envoi de mail
    Bonjour à tous =) ,

    Je vous explique mon problème. Je dois envoyer un mail à par exemple 100 destinataires, mais on m'a imposé une limite c'est à dire que je dois découper en paquet de 10 les destinataires. Le code que je fais ne fonctionne pas et je voulais savoir si vous pouviez m'aider à effectuer ce programme car je bloque depuis un petit moment maintenent dessus. merci d'avance à vous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    $tabStringExplode = explode(',',$_POST['Email']);
    $count = count($tabStringExplode);	
    	//	Définit un compteurmin afin d'éviter de repartir à 0
    	//	lorsqu'il y a découpe en paquet de compteurMax
    	$compteurMin = 0;
     
    	//	Boucle tant que $tabStringExplode contient des éléments
    	while($count > 0)
    	{
    		if($count > 3)
    		{
    			//	Si le nombre d'éléments à transmettre est supérieur à 50
    			//	on découpe celui-ci en paquet de 50 pour éviter une surcharge lors de l'envoi
    			$compteurMax = 3;			
    		}
    		else
    		{		 
    			//	CompteurMax est égal au nombre d'adresse mail contenu dans $tabStringExplode
    			$compteurMax = $count;
    		}
    		for($i = $compteurMin ; $i < $compteurMax ; $i++)
    		{	
    		//echo '<br/>'.$tabStringExplode[$i];	
    			$mail->AddAddress($tabStringExplode[$i]);			
    		}
    		$compteurMin = $compteurMax + 1;
    		$var = $mail->Send();

  2. #2
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Bonjour,

    Si tu disposes d'un tableau que tu souhaites "éclater" en plusieurs de taille donnée, tu peux utiliser la fonction array_chunk : http://fr.php.net/manual/fr/function.array-chunk.php

  3. #3
    Membre confirmé
    Homme Profil pro
    Informatique
    Inscrit en
    Mai 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2011
    Messages : 133
    Par défaut
    Merci nesmontou de ta réponse je n'y avais pas pensé à cette fonction effectivement. Par contre dis moi où dans ma boucle la mettrais tu ?

  4. #4
    Membre confirmé
    Homme Profil pro
    Informatique
    Inscrit en
    Mai 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2011
    Messages : 133
    Par défaut
    Alors j'ai pensé à utiliser la fonction comme suit quelqu'un peut me dire si c'est bon SVP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    	$count = count($tabStringExplode);	
    	//	Définit un compteurmin afin d'éviter de repartir à 0
    	//	lorsqu'il y a découpe en paquet de compteurMax
    	$compteurMin = 0;
     
    	//	Boucle tant que $tabStringExplode contient des éléments
    	while($count > 0)
    	{
    		if($count > 3)
    		{
    			//	Si le nombre d'éléments à transmettre est supérieur à 50
    			//	on découpe celui-ci en paquet de 50 pour éviter une surcharge lors de l'envoi
    			$compteurMax = 3;	
    			print_r(array_chunk($tabStringExplode,3));
    		}
    		else
    		{		 
    			//	CompteurMax est égal au nombre d'adresse mail contenu dans $tabStringExplode
    			$compteurMax = $count;
    		}
    		for($i = $compteurMin ; $i < $compteurMax ; $i++)
    		{	
    		//echo '<br/>'.$tabStringExplode[$i];	
    			$mail->AddAddress($tabStringExplode[$i]);			
    		}
    		$compteurMin = $compteurMax + 1;
    		$var = $mail->Send();

  5. #5
    Membre confirmé
    Homme Profil pro
    Informatique
    Inscrit en
    Mai 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2011
    Messages : 133
    Par défaut
    Pardon je voualis mettre ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    $count = count($tabStringExplode);	
    	//	Définit un compteurmin afin d'éviter de repartir à 0
    	//	lorsqu'il y a découpe en paquet de compteurMax
    	$compteurMin = 0;
     
    	//	Boucle tant que $tabStringExplode contient des éléments
    	while($count > 0)
    	{
    		if($count > 3)
    		{
    			//	Si le nombre d'éléments à transmettre est supérieur à 50
    			//	on découpe celui-ci en paquet de 50 pour éviter une surcharge lors de l'envoi
    			$compteurMax = array_chunk($tabStringExplode,3));;	
    			//print_r(array_chunk($tabStringExplode,3));
    		}
    		else
    		{		 
    			//	CompteurMax est égal au nombre d'adresse mail contenu dans $tabStringExplode
    			$compteurMax = $count;
    		}
    		for($i = $compteurMin ; $i < $compteurMax ; $i++)
    		{	
    		//echo '<br/>'.$tabStringExplode[$i];	
    			$mail->AddAddress($tabStringExplode[$i]);			
    		}
    		$compteurMin = $compteurMax + 1;
    		$var = $mail->Send();

  6. #6
    Membre confirmé
    Homme Profil pro
    Informatique
    Inscrit en
    Mai 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2011
    Messages : 133
    Par défaut
    Bon j'ai décidé de passer par des foreach comme ci dessous pouvez me dire ce que vous en pensez merciiiiiiiiii
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    //	Retourne le nombre de mail  envoyer
    	$count = count($tabStringExplode);	
     
    	//	Boucle tant que $tabStringExplode contient des éléments
    	while($count > 0)
    	{
    		foreach(array_chunk($tabStringExplode,3) as $value)
    		{
    			foreach($value as $i)
    			{	
    				//echo '<br/>'.$tabStringExplode[$i];	
    				$mail->AddAddress($tabStringExplode[$i]);			
    			}			
    			$var = $mail->Send();		
    		}
     
    		if($var)
    		{
    			//	Pas d'erreur le programme continue à boucler
    			$count = count($tabStringExplode);
    			//	Supprime toutes les adresses affectées au tableau $mail			
    			$mail->ClearAddresses();			
    		}		
    		else
    		{	
    			echo '<p>'.$mail->ErrorInfo.'</p>';
    			//	Erreur rencontré le programme se stoppe
    			break;
    		}
    	}

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Newsletter] Envoi de mail en masse par paquet en PHP
    Par wouha dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 09/01/2014, 18h32
  2. transferer la parole ? découper en paquets
    Par horse dans le forum Réseau/Web
    Réponses: 1
    Dernier message: 18/05/2010, 17h51
  3. envoi de mail avec attachement de fichier
    Par GMI3 dans le forum Modules
    Réponses: 2
    Dernier message: 24/09/2003, 11h22
  4. Outlook ne se ferme pas après un envoi de mail
    Par Joke dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/06/2003, 17h32
  5. envoi de mail, protocol SMTP langage C
    Par Heimdall dans le forum Développement
    Réponses: 2
    Dernier message: 23/05/2003, 11h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo