Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
J'utilise ZF pour effectuer un mailing auprès de mes abonnés
ZF version 0.9.2
J'ai un problème très étrane!
Je boucle sur les adresses de mes membre et essaie d'envoyer ainsi :
foreach($membres AS $email){
$email = new Zend_Mail();
...
$email->send();
}
Mon script envoi 15 mails et se bloque...
Alors j'ai essayé :
foreach($membres AS $email){
$email = new Zend_Mail();
...
$email->send();
unset($email);
}
J'ai 17 emails envoyés!
J'ai aussi essayé de changer le contenu de mon mail et j'ai 21 mails envoyés!
J'ai pensé à un problème mémoire mais ça parait bizarre pour 21 mails...
Qu'est-ce que ça pourrait etre d'autre?
Hors ligne
Bonjour,
Si c'est un problème de mémoire, tu dois avoir un message dans tes logs apache ou php.
Est-ce que tu peux fouiller dans tes logs pour voir s'il y a quelque chose ?
A+,
Philippe
Hors ligne
J'execute ce script via cron ou en ligne de commande avec php5-cgi. Donc rien dans mes logs apache
Y a-t-il des logs PHP autre part?
Hors ligne
Peut-être une histoire de timeout, y-a-t-il des pièces jointes ?
Hors ligne
Pour des logs d'erreur, il faut fouiller dans ton php.ini et mettre les paramètres :
log_errors = On
error_log = /var/log/php.log (ou le chemin qui te convient)
Pour un timeout, tu peux regarder max_execution_time dans php.ini ou mettre au début de ton script :
ini_set('max_execution_time', nbSeconds);
A+, Philippe
Hors ligne
Grrr je ne m'en sors pas. J'ai essayé en passant par un mail() classique. J'ai le même problème, le script n'envoie plus au bout d'un moment!
Donc à priori le pb ne vient pas de ZF.
Non pas de pièce jointe, des simples mails de 4/5 ko au format HTML
J'ai activé les logs et j'ai la même chose qu'en console, à savoir :
[04-sep-2007 10:10:16] PHP Fatal error: Maximum execution time of 30 seconds exceeded in /usr/lib/ZendFramework/library/Zend/Mime.php on line 151
Le truc c'est que ce message apparait bien après les 30 secondes en question!
Sinon augmenter le timeout me semble pas etre la solution, vu que les 15 premiers mails par exemple sont envoyé, à la louche, dans les 3 secondes donc il y a bien un blocage au bout d'un moment.
Le plus curieux c'est que le nombre de mails envoyés varie en fonction du contenu!
Hors ligne
C'est peut être la taille max alloué pour un script qui pose problème...
Sinon, tu fait un script qui envoie 5 mails, puis qui rapelle ce script pour envoyer 5 mails à partir du 5ieme, puis qui rappelle ce script pour envoyer 5 maisl à partir du 10ieme... (header("Location: tapagedemail.php?i=X") X etant l'indice de debut...)
C'est du bidouillage mais si ça peut marcher...
Hors ligne
Oui, j'y ai pensé, je vais essayé pourquoi pas... mais c'est un script fait pour etre lancé en console...
Le plus étonant c'est que si je commente le $email->send(); alors le script se termine bien...
Hors ligne
Pour la taille mémoire du script, tu peux toujours regarder par là : http://ez.no/ezpublish/documentation/co … php_memory
Hors ligne
La limite était à 128M... même en la passant à 256M, pas mieux
Incroyable ce problème
Hors ligne
A force de débuggage, j'ai apparement remarqué que des pseudos de membres faisaient bloquer le script... puisque si je les ignore et que je ne fait pas de senf() pour des pseudos particuliers, alors le script se termine bien... Comment le contenu d'un mail peut-il bloquer son envoi? (je parle bien de contenu car pour débugguer, je fais envoyer les mails sur mon adresse perso)
Je vais chercher de ce côté là et vous tiens au courant!
Hors ligne
Plusieurs mois après, j'ai semble-t-il trouvé une solution...
Une augmentation de la RAM de mon serveur semble corriger le pb.
Etrange qu'aucune erreur n'ai été générée par PHP ou dans les logs systèmes
Hors ligne
Pages: 1