Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'ai un formulaire de contact utilisant Zend_Mail, mais l'exécution du script est très lent (environ 3 à 5 secondes), durant laquelle la page est blanche (en cours de chargement), avant que le mail ne soit effectivement envoyé.
Voici mon script :
if ($this->_request->isPost()) { Zend_Loader::loadClass('Zend_Filter_StripTags'); $filter = new Zend_Filter_StripTags(); $message = $filter->filter($this->_request->getPost('message'));$message = trim($message); $sujet = 'bla'; $message_html = 'blabla'; $message_txt = 'blabla'; ///////////////////////// Mail HTML + texte /////////////////////////////////////////////// require_once 'Zend/Mail.php'; require_once 'Zend/Mail/Transport/Smtp.php'; $config = array(); $transport = new Zend_Mail_Transport_Smtp('localhost', $config); $mail = new Zend_Mail(); $mail->setBodyText($message_txt); $mail->setBodyHtml($message_html); $mail->setFrom('test@test.com', 'Mon Adresse'); $mail->addTo('test2@test.com', 'SonAdresse'); $mail->setSubject($Sujet); //Zend_Debug::dump($mail); try { $mail->send($transport); } catch (Exception $e) { echo 'erreur mail : '.$e.'<hr />'; Zend_Debug::dump($e); } ///////////////////////// Fin Mail HTML + texte /////////////////////////////////////////////// return; }
J'ai essayé de ne pas utiliser Zend_mail_transport, mais dans ce cas j'obtiens une erreur.
Merci d'avance de votre aide,
Laurent
Dernière modification par Saeba (04-03-2008 16:01:38)
Hors ligne
Bonjour,
A priori, j'utilise le même code et je n'ai pas de lenteur.
A mon avis il faut regarder du coté de ton serveur de mail. Est-ce que tu as essayé d'envoyer un mail sans le Zend Framework (avec la fonction mail() ou directement à la main avec un telnet ?)
A+, Philippe
Hors ligne
Bonjour Philippe,
Merci de ta réponse.
Avec la fonction mail() de PHP et avec celle de PEAR, je n'ai pas ce problème de lenteur. Je suis hébergé sur Dédibox.
Laurent
Hors ligne
Essaye de ne pas utiliser Zend_Mail_Transport_Smtp si ton serveur est bien configurer (ce qui à l'air d'être le cas étant donnée que la fonction mail foncitonne bien).
Mais je ne spécifie rien à Zend_Mail est ça marche très bien
PS: j'dis ça j'connais pas en détail technique si ça revient au même ou pas!
Hors ligne
Bonjour,
Je viens de tester avec un simple Zend_Mail sans utiliser Zend Transport, et là c'est pire : la page semble se charger lors de l'envoi, sans rien faire.
L'envoi n'est jamais effectué, la page tente de se charger, jusqu'à arriver au timeout PHP.
function indexAction() { require_once 'Zend/Mail.php'; $mail = new Zend_Mail(); $mail->setBodyText('Mon texte de test'); $mail->setBodyHtml('Mon texte de test'); $mail->setFrom('mon_adresse@blabla', 'Exp'); $mail->addTo('adress_destinataire@blabla', 'destinataire'); $mail->setSubject('Sujet de test'); $mail->send(); }
Laurent
Hors ligne
En fait, j'avais un problème au niveau du smtp sur le serveur qui était mal configuré, d'où les problèmes de lenteur.
Le paramétrage a été modifié, et je n'utilise plus que Zend_Mail et non plus Transport.
Ca fonctionne nickel
Merci,
Laurent
Hors ligne