[PhP:>PhPMailer] Qui connait !!! G une erreur

P@ Messages postés 1710 Statut Membre -  
 gaby -
Bonjour,

Dés que je met un doc joint ... j'ai le droit à Fatal error: Maximum execution time of 30 seconds exceeded PATH\class.smtp.php on line 361
Bien entendu je n'ai jamais touché à cette class ....
Par ailleurs, mon script marchait trés bien la semaine dernière ... et je n'ai pas touché à cela depuis ................

Mais voici mon code
	$mail = new PHPMailer();
	$mail->IsSMTP();
	$mail->Host = "smtp.XXX.fr";
	$mail->SMTPAuth = true;
	$mail->Username = "XXX@XXX.fr";
	$mail->Password = "";

	$mail->From = "ZZZZZ@XXX.FR";
	$mail->FromName = "YYYYY";
	$mail->AddAddress($email);
	$mail->AddReplyTo("XXX@XXX.fr", "Information");

	$mail->WordWrap = 150;
	if(!empty($pdfUp)){ // Test pour savoir si attachement il doit y avoir
		$mail->AddAttachment($pdfUp); 
	}
	$mail->IsHTML(false);
	$mail->Subject = stripslashes($sujet);
	$mail->Body    = stripslashes($html);
	$mail->AltBody = stripslashes($text);

	if(!$mail->Send())
	{
	   echo "Message could not be sent. <p>";
	   echo "Mailer Error: " . $mail->ErrorInfo;
	   exit;
	}
    $mail->ClearAddresses();
    $mail->ClearBody();
    $mail->SmtpClose();
	unset($mail);


Alors n'hésitez pas si vous voyer ce qui cloche ... parce que là ... je ne vois pas du tout ce qui peut mer**r !!!

Merci d'avance pour votre aide
A voir également:

23 réponses

P@ Messages postés 1710 Statut Membre 185
 
Merci ..
Et oui, en effet ca merdouille uniquement ... ya juste une petite erreur que je viens de corriger mais ca n'affecte pas l'envoie de mail ...

@ bemain :D
Bonne soirée et merci pour ton aide
1
B@|-|@N Messages postés 386 Statut Membre 62
 
Et $pdfUp, il a quelle valeur ?
Tu as utilisé combien de fois ton script depuis la semaine dernière ?
Là, il ne marche plus du tout ou alors ça marche de temps en temps ?

Bahan
0
P@ Messages postés 1710 Statut Membre 185
 
En fait, $pdfUp est l'emplacement de ma piece jointe ... et effectivement il fonctionne trés bien pourvue que cette variable soit vide :(
Aurais-je oublié de le spécifier ???

Bonne journée
0
Zep3k!GnO Messages postés 2049 Statut Membre 200
 
hihi couCoO :D

tiens j'ai trouvé ca , tout en bas y a un script d'exemple avec attachement de pièces jointes:
http://stephaneey.developpez.com/tutoriel/php/phpmailer/


Mais je pense que c'est ton test qui n'est pas bon, du coups, il essaye d'attacher une fichier avec un chemin non correct, et il se panne.
tu test avec empty(), mais t'as essayé avec un isset() ? ! (selon comment tu gères ton script...) et puis y a quoi dans c'te variable $jesaisplusquoiPDf ? t'as fait un echo pour voir ? !

Tell Me More :)
0
P@ Messages postés 1710 Statut Membre 185
 
avec
	if(isset($pdfUp)){
		$mail->AddAttachment($pdfUp);
	}

Ca fait pareil ...
et avec un echo, j'ai bien le chemin relatif du pdf permettant de la joindre./Upload/News23-02-06--11-07.pdf

Je connais le liens que tu m'a envoyé... mais je ne vois pas différence entre ce qui est écrit et ce que je fait ...

En effet, le probléme vient peut être du test ... Mais il vient de 3 lignes, je pense

Ce ne serait pas mieux de passer hors class et de tout refaire ?? (c'est juste une question :D)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
P@ Messages postés 1710 Statut Membre 185
 
rectification, avec une piéce jointe ca ne semble pas marcher sur mes archives non plus !!!!

QUOI FAIRE :(
0
Zep3k!GnO Messages postés 2049 Statut Membre 200
 
Ce ne serait pas mieux de passer hors class et de tout refaire ?? (c'est juste une question :D)

Bah moi je la connaissait pas c'te classe et elle m'a l'air bien sympathique pourtant ... :)

Une question con : t'as essaye de tester l'envoi avec un adresse de fichier en dur ?
/*if(!empty($pdfUp)){ // Test pour savoir si attachement il doit y avoir*/
		$mail->AddAttachment("monImage.jpg"); 
	/*}*/

comme ça ,ca$h, avec ton image dans le même répertoire, sans caractère relou genre les '-' qui peuvent le saouler,sans le test.... ? !
0
P@ Messages postés 1710 Statut Membre 185
 
Bon, ca marche avec un doc en dur ...
Pour au fur et a mesure .. arriver vers un des pdf ...
Et effectivement ca plante dés qu'on arrive sur une News17-02-06--15-18.pdf mais le mail part ....

Qu'est qui ne saoule pas php ?? comment remplacer les -, j'ai essayer les . mais j'ai le même resultat :D

Si vous avez une idée je suis preneuse
0
Zep3k!GnO Messages postés 2049 Statut Membre 200
 
Allez c'est bin car c'est toi ;)
$pdfUp="tartalalala-lalali-lala.jpg";
echo $pdfUp; //  ecrit : tartalalala-lalali-lala.jpg
$okay=$str_replace("-", "", $pdfUp);
echo $okay; //  ecrit : tartalalalalalalilala.jpg


donc il faut que tu renomms ton fichier au moment de l'upload comme ca et puis après il ne devrait plus y avoir tes '-' . . .
Mais je ne suis pas sur que ça soit ca...
Pour ce faire, je te conseil de tester encore en dur avec un :
$mail->AddAttachment("mon-Image.jpg");

Histoire de voir si c'est bien les - qui merdent..; des fois aussi ca peut etre du au nom de fichier qui est trop long, du coup la fonction le coupe et ton nom de fichier ne ressemble plus à rien...
A voir.
0
P@ Messages postés 1710 Statut Membre 185
 
arrrrrrrrrrrrrrrrr

Bon, ca ne plante plus ... en dyna mique ... l'upload se fait bien ....
Mais fait sortir des erreur
Mais l'attachement ne se fait pas !!!

Je ne comprend pas
0
P@ Messages postés 1710 Statut Membre 185
 
Bon, j'ai trouvé une autre source de pb ...
Le doc avec lequel je testait été trop lourd (3Mo, j'avais po vu ;-( )

Donc ca c'est résolu ... sauf qu'au bout de 2 mails envoié il arrêtes ... alors qu'il doit pouvoir continuer de rouler !!!
Je ne comprend pas ... parce que c'est toujours avec la même erreur :(
Une idée ??
0
P@ Messages postés 1710 Statut Membre 185
 
J'ai la sensation que mon souci maintenant et du a un manque d'optimisation.

Mais comment optimise-t-on une application et surtout un module ??

Y a t il des choses a oublier, pour ce concentrer sur des techniques qui utilisent moins de ressource ??

Comment savoir ??

Merci d'avance
0
Zep3k!GnO Messages postés 2049 Statut Membre 200
 
Y a t il des choses a oublier, pour ce concentrer sur des techniques qui utilisent moins de ressource ??

Comment savoir ??


la pour ce qui est des ressources utilisées, ça je ne sais pas comment tester... mais je sais qu'il faut minimiser tout ce qui est boucle while, for, liberer l'espace mémoire après chque requete, connexion MySQL...

Pour ton mail ,tu ne l'enverrai pas en boucle par hasard ? !
Car si oui, je ne sais pas si ta class est oiptimisée pour le traitement de mail en masse... si c'est pour les même gens, fait le en copie cachée...
0
P@ Messages postés 1710 Statut Membre 185 > Zep3k!GnO Messages postés 2049 Statut Membre
 
Pour info, j'ai trouvé ca ...
http://www.vulgarisation-informatique.com/optimiser-php.php
Ca ne répond pas à tout mais ca répond à quelques intérrogation :D
0
P@ Messages postés 1710 Statut Membre 185
 
Oui, je l'envoie en boucle ...
Et ce n'est pas le même ... alors je ne peux pas remplir un cci :(
C'est pour ca que je optimiser ...

MAIS tout ce que j'ai fait est basé sur des While ou des For !!!!
Suis je dans la M***E ???
0
Zep3k!GnO Messages postés 2049 Statut Membre 200
 
Suis je dans la M***E ???
P'tet pas jusqu'au cou, mais t'en a sous la semelle ;)

bin essaye de minimiser les boucles, si tu peux faire le traitement de 2 boucles en 1, bin fait =]

Sinon,c'est lourd car c'est un autre package, mais sur nexen ils disent
Pour envoyer de gros volumes de mails, reportez-vous aux paquets PEAR::Mail et PEAR::Mail_Queue .

Voilà... je compatis, c'est lourd ces moments la dans la prog...
Courage :D
0
P@ Messages postés 1710 Statut Membre 185
 
oui, je connais ...
Mais j'arrive pas a faire de piéce jointe avec:(
0
Zep3k!GnO Messages postés 2049 Statut Membre 200
 
idée débile :
essaye a la fin du traitement de ton mail de lui imposer une pause dans le script, afin de ne pas brusquer le pauvre petit...
--> sleep(2); //fait dodo pendant 2 secondes.
0
P@ Messages postés 1710 Statut Membre 185
 
j'en passe qu'un au lieu de 2 avant :(
Une autre idée ?? :D
0
B@|-|@N Messages postés 386 Statut Membre 62
 
Et à chaque fois tu utilises comme objet le même ? i.e. mail il me semble, non ?

Pourtant, tu as l'air de bien l'unsetter à la fin... Zarb.

En fait, quand même, vu le message d'erreur, je dirais que ça sent la boucle infinie quelque part XD.

Tu peux nous mettre plus de codes là ?

Bahan
0
P@ Messages postés 1710 Statut Membre 185
 
Oui, mais dans la class que je n'ai jamais toucher (c'est pas moi je le jure :D)
Et en plus il tourne correctement 2 fois avant de faire Fatal error: Maximum execution time of 30 seconds exceeded in PATH\class.smtp.php on line 361

Alors ducoup ...
0
B@|-|@N Messages postés 386 Statut Membre 62
 
Oui mais, dans ce cas, peut-être qu'il y a trop de création d'objets utilisant cette classe.

Fais voir plus de codes. Genre ce que tu nous as montré, c encerclé par une boucle for ? while ?

Bahan
0
P@ Messages postés 1710 Statut Membre 185
 
alors il y a
function envoie($sujet,$messagecenter,$pdfup,$serviceTotal,$newsid){
	$QUERY = mysql_query("SELECT DISTINCT email,id,nom,prenom,fonction,nomOrganisation FROM envoie ");
	$RESULT = mysql_num_rows($QUERYecrRECIPIENT);

		$log='';
$x=0;
WHILE($RESULT!=$x)
		{
			$NOM = mysql_result($QUERY,$x,"nom");
			$PRENOM = mysql_result($QUERY,$x,"Prenom");
			$NOMORGA = mysql_result($QUERY,$x,"nomOrganisation");
			$email = mysql_result($QUERY,$x,"email");
			$recipientID= mysql_result($QUERY,$x,"id");
			$FONCTIONnom= mysql_result($QUERY,$x,"fonction");
			$log[]=	Array('ID'=> $recipientID,'NOM'=> $NOM,'PRENOM'=> $PRENOM,'MAIL'=> $email,'ORGANISATION'=> $NOMORGA);
			$message = Personalise($NOM,$PRENOM,$NOMORGA,$FONCTIONnom,$messagecenter);

			envoierMail($email,$sujet,$message,$message,$pdfup);
$x++;
		}
	logMail ($log, $dateUp);
}


et
function envoierMail($email,$sujet,$html,$text,$pdfUp=''){
	$mail = new PHPMailer();
	$mail->IsSMTP();
	$mail->Host = "xxx.xxx.xx";
	$mail->SMTPAuth = true;
	$mail->Username = "xxx@xx.xx";
	$mail->Password = "";

	$mail->From = "zzz@eee.ee";
	$mail->FromName = "ZZZZZZ";
	$mail->AddAddress($email);
	$mail->AddReplyTo("", "Information");

	$mail->WordWrap = 150;
	$mail->IsHTML(true);

	$mail->Subject = stripslashes($sujet);
	$mail->Body    = stripslashes($html);
	$mail->AltBody = stripslashes($text);
	if(isset($pdfUp)){
		$mail->AddAttachment($pdfUp);       
	}

	if(!$mail->Send())
	{
	   echo "Message could not be sent. <p>";
	   echo "Mailer Error: " . $mail->ErrorInfo;
	   exit;
	}
	echo "j'ai un pdf !!";
    $mail->ClearAddresses();
    $mail->ClearBody();
    $mail->SmtpClose();
	unset($mail);
}
0
B@|-|@N Messages postés 386 Statut Membre 62
 
Me semble qu'il y a peut-être problème au niveau de ton exploitation des résultats de ta requête.
WHILE($RESULT!=$x)
Là, peut-être que ta fonction envoier_mail se prend des arguments nuls dans la tonche, non ?

Jette un oeil on sait jamais... ^_^

Bahan
0
P@ Messages postés 1710 Statut Membre 185
 
envoierMail($email,$sujet,$message,$message,$pdfup);
envoierMail est forcement plein, seul $pdfup peut être à '' mais dans ce cas il est initalisé ainsi plus haut ...
Tu pense que ca pourrait poser problème ??
Qu'est ce que je peut faire ??
0
B@|-|@N Messages postés 386 Statut Membre 62
 
Quand tu envoies des mails sans PJ, tu n'as aucun pb, c'est ça ?
Il n'y a que quand tu essaies d'envoyer des mails avec PJ que tu as des soucis ?

Vais aller choper ce soir la class et je testerai pour voir.

Bahan
0
P@ Messages postés 1710 Statut Membre 185
 
Allo,
tu as pu tester ??
ca marche ??
0
B@|-|@N Messages postés 386 Statut Membre 62 > P@ Messages postés 1710 Statut Membre
 
Désolé :(, j'ai pas eu le temps hier, mais ce soir, je jette un oeil (c'est dégoutant d'ailleurs cette expression ;)).

Bahan
0
P@ Messages postés 1710 Statut Membre 185 > B@|-|@N Messages postés 386 Statut Membre
 
Tout à fait d'accord...
Mais du cout tu as tout le we ...
Je suis partie avec une autre class ... libMail ... j'ai l'impression que ca va un peu mieux ...
0