Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2845 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  PHP : Fonction mail() bloque ma page

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PHP : Fonction mail() bloque ma page

n°1455886
snike
Posté le 12-10-2006 à 11:09:39  profilanswer
 

J'utilise pour mon Intranet la fonction toute simple mail() qui fonctionne très bien sauf quelle met énormément de temps à envoyer le mail.
 
En effet quand je clic sur envoi la page charge longtemps et je suis généralement obligé de l'arrêter sauvagement, par contre le message est bien envoyé.
 
Je voudrais savoir comment éviter se problème avec peut un while
 
D'avance merci.


---------------
Le problème avec les idées derrière la tête c'est qu'on ne peut pas les voir :??:
mood
Publicité
Posté le 12-10-2006 à 11:09:39  profilanswer
 

n°1455888
FlorentG
Unité de Masse
Posté le 12-10-2006 à 11:13:20  profilanswer
 

Un while ? [:johneh] [:johneh]
 
Profile une fois ton appli histoire de voir

n°1455892
snike
Posté le 12-10-2006 à 11:16:43  profilanswer
 

Mon code :
 

Code :
  1. $sql0="SELECT mel FROM personnel WHERE num_pers IN $pers and externe=1";
  2.   //echo "<br>$sql0";
  3.   $res0 = mysql_query($sql0);
  4.   while ($row0 = mysql_fetch_object($res0)) {
  5.     Mail($row0->mel,$obj,$mess);
  6.     echo "<br>Mail(".$row0->mel.",$obj,$mess)";
  7.   }


 
Il y a 90% des cas 1 seul mel envoyé même s'il y a une boucle


---------------
Le problème avec les idées derrière la tête c'est qu'on ne peut pas les voir :??:
n°1455894
snike
Posté le 12-10-2006 à 11:19:31  profilanswer
 

J'oubliais j'ai également un Net send qui est lancé en même temps avec le code suivant
 

Code :
  1. $res0=shell_exec("net send $p->ip $m" );


---------------
Le problème avec les idées derrière la tête c'est qu'on ne peut pas les voir :??:
n°1455897
FlorentG
Unité de Masse
Posté le 12-10-2006 à 11:22:29  profilanswer
 

snike a écrit :

Mon code :
 

Code :
  1. $sql0="SELECT mel FROM personnel WHERE num_pers IN $pers and externe=1";
  2.   //echo "<br>$sql0";
  3.   $res0 = mysql_query($sql0);
  4.   while ($row0 = mysql_fetch_object($res0)) {
  5.     Mail($row0->mel,$obj,$mess);
  6.     echo "<br>Mail(".$row0->mel.",$obj,$mess)";
  7.   }


 
Il y a 90% des cas 1 seul mel envoyé même s'il y a une boucle


Selon la doc PHP, il est extrêmement déconseillé de faire un mail dans un boucle, parce qu'un socket est ouvert à chaque fois.
 
Je sais pas si tu sais, mais le premier paramètre peux prendre une liste d'email, y'a même pas besoin de faire de boucle :)
 
Genre :


$mail_array = array();
while ($row0 = mysql_fetch_object($res0)) {
  $mail_array [] = $row0->mel;
}
$mail_list = implode(',', $mail_array);
mail($mail_list, $obj, $mess);


Message édité par FlorentG le 12-10-2006 à 11:22:40
n°1456044
bakastef
Posté le 12-10-2006 à 14:23:48  profilanswer
 

Tout d'abord ecoute florentG c'est un bon conseil.
Puis perso je pense que le pb viens du net send que tu fais en meme tps.
 
J'ai deja bossé sur un site intranet qui faisait la meme chose.... et si tu essais d envoyer un netsend sur une ip qui n'existe pas (ou une machine non connectée), tu pars pour 30 seconde d'attente... c'est le delai max pour lequel netsend essai de joindre la machine.
 
 
A ca 2 solutions:  soit tu reduis ce temps d attente (mais de souvenir ce n'est possible que sur certaine versions de windows)
soit tu fais la lite des machines connectées sur ton reseau, et tu n'envoie le net send qu'a celle présente.
Pour ce faire, tu fais un shell_exec ( net view, ...); tu recuperes la variable de retour, tu en extraits les noms/ip des machines et ca roule ^^
 
Voilou


Message édité par bakastef le 12-10-2006 à 14:26:21

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  PHP : Fonction mail() bloque ma page

 

Sujets relatifs
raccourcis in my page perso--->tjrs my adresse in barre de liensRapatrier une page web protégée
Activer JS dans une page appelée en Ajax[PHP]Cmt faire un post traitement?(après envoi de la page au client)
phpBB, fonction mail et OVHPlusieurs "submit" dans une meme page ?
[RESOLU] tab multidimensionel en paramètre d'une fonctionExporter formulaire HTML en CSV pour Excel sans PHP
Plus de sujets relatifs à : PHP : Fonction mail() bloque ma page


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR