Précédent   Forum des professionnels en informatique > PHP > Scripts
Scripts Forum d'entraide sur les scripts PHP téléchargés. Les meilleurs scripts PHP, la FAQ scripts PHP, toutes les FAQ PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/06/2011, 08h42   #1
Nouveau Membre du Club
 
Homme
Informatique
Inscription : mai 2011
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Informatique
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 112
Points : 36
Points : 36
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 :
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();
beber005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 09h02   #2
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 568
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 568
Points : 2 493
Points : 2 493
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
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 09h06   #3
Nouveau Membre du Club
 
Homme
Informatique
Inscription : mai 2011
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Informatique
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 112
Points : 36
Points : 36
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 ?
beber005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 09h37   #4
Nouveau Membre du Club
 
Homme
Informatique
Inscription : mai 2011
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Informatique
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 112
Points : 36
Points : 36
Alors j'ai pensé à utiliser la fonction comme suit quelqu'un peut me dire si c'est bon SVP

Code :
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();
beber005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 09h38   #5
Nouveau Membre du Club
 
Homme
Informatique
Inscription : mai 2011
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Informatique
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 112
Points : 36
Points : 36
Pardon je voualis mettre ce code

Code :
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();
beber005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 10h46   #6
Nouveau Membre du Club
 
Homme
Informatique
Inscription : mai 2011
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Informatique
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 112
Points : 36
Points : 36
Bon j'ai décidé de passer par des foreach comme ci dessous pouvez me dire ce que vous en pensez merciiiiiiiiii
Code :
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;
		}
	}
beber005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 13h10   #7
Nouveau Membre du Club
 
Homme
Informatique
Inscription : mai 2011
Messages : 112
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Informatique
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 112
Points : 36
Points : 36
Bon bah encore une fois merci j'ai trouvé une solution et je l'expose ici pour ceux qui seront bloqués comme moi voilà
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
foreach(array_chunk($tabStringExplode,3) as $sousTableaux)
	{		
		foreach($sousTableaux as $i)
		{	
			//echo '<br/>'.$tabStringExplode[$i];	
			$mail->AddBCC($i);			
		}
 
		$var = $mail->Send();
		$mail->ClearBCCs();	
 
		if(!$var)
		{
			echo '<p>'.$mail->ErrorInfo.'</p>';
			//	Erreur rencontré le programme se stoppe
			break;
		}
	}
beber005 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h08.


 
 
 
 
Partenaires

Hébergement Web